UITableView是最常用的控件,也是要求必须要求掌握的基础控件
#define SIZE_WIDTH [UIScreen mainScreen].bounds.size.width
#define SIZE_HEIGHT [UIScreen mainScreen].bounds.size.height
1.代码创建
UITableView*SELFTableview=[[UITableView alloc]initWithFrame:CGRectMake(0, 0, SIZE_WIDTH,SIZE_HEIGHT )];
SELFTableview.delegate=self;
SELFTableview.dataSource=self;
[self.view addSubview:SELFTableview];
还有都是到要把代理方法引用@interface : UIViewController<UITableViewDelegate,UITableViewDataSource>
2.其还有两个必须实现的代理方法
(1)- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section;
(2)- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;
(这样我们就简单完成了UITableView的代码创建)
3.这时候我们就用tableview来实现我们的需求(自定义也好,直接用也行)
那么问题来了,UITableViewCell的cell之间会默认带一条分割线(毕竟是表吗,肯定要有线的)但是,他自带的线条不顶头,在左边总会有20左右px。那么怎么补全呢?我在这里简单提供两种解决方案
1>
直接隐藏系统的
分割线,自己写一个高度为1px,宽度为屏幕宽度的细线来代替(还可以自定义颜色多好)
2>
我们用系统提供的一个方法我这边就是用的这个方法(直接拷贝!直接用)
-(void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPat{
if ([cell respondsToSelector:@selector(setLayoutMargins:)]) {
[cell setLayoutMargins:UIEdgeInsetsZero];
}
if ([cell respondsToSelector:@selector(setSeparatorInset:)]){
[cell setSeparatorInset:UIEdgeInsetsZero];
}
if([cell respondsToSelector:@selector(setPreservesSuperviewLayoutMargins:)]){
[cell setPreservesSuperviewLayoutMargins:NO];
}
}
网友评论