tableView可学的东西太多,用到的也多。每次用到的时候记不住都要百度,其实还是自己总结的太少。
1.在tableView单元格cell中,常常为了显示效果要去掉单元格下面的黑线,当滑动的时候一条条黑色的线很影响美观,我们可以用这个方法去除。
这样看起来就好多了。
2.在tableView中,当我们点击单元格的时候往往总会有黑色的阴影,点击一下,出来一次。特别当背景是白色的时候,看起来好难受。然后可以用这个去删除阴影效果
而在swift中去除单元格背景阴影的方法
Cell.selectionStyle=UITableViewCellSelectionStyle.none
3.在自定义单元格的时候,初始化cell的时候有几种方法,其中最好用这个
我今天用的frame那个初始化方法,结果被坑了一直找不到cell上面的控件,检查了好久,才知道是这里。以后就默认用这个方法就好了。
4.在cell中有头像类的image属性赋值的时候,我们webImageView库赋值的时候最好用这个方法
<UIImageView+WebCache.h>这个方法可以刷新图片,要不然图片就会一直是第一次缓存的那个,无法和服务器的数据进行刷新更新。
5.在单元格上面的按钮中获取按钮所在单元格的索引
UITableViewCell cell = (UITableViewCell )[[单元格控件 superview]superview];
NSIndexPath *indexPath = [self.tabView indexPathForCell:cell];
indexPath就是所在的索引值,可以获取单元格所在的区和行
6.如果在单元格最右端想要添加向右的箭头,可以直接选择type设置
cell.accessoryType=UITableViewCellAccessoryDisclosureIndicator;
如果想要在箭头左边添加lab信息,也可以直接用tableview自带的
cell.detailTextLabel.text=@"111";
7.如果想在有内容的单元格下面加横线,没有内容的话就不加
_tableView.tableFooterView= [UIViewnew];
8.tableview还有一个cell的方法
- (void)tableView:(UITableView*)tableView willDisplayCell:(UITableViewCell*)cell forRowAtIndexPath:(NSIndexPath*)indexPath
{}
在这个方法可以设置cell的出场布局,比如一个例子
if([cell.layervalueForKey:@"animation"]) {
return;
}
CABasicAnimation*animation = [CABasicAnimationanimationWithKeyPath:@"transform.scale"];
animation.fromValue=@(0.5);
animation.duration=0.5;
[cell.layeraddAnimation:animationforKey:@"animation"];
这是一个cell缩放的出场动画,无论是跳转还是滑动滑进的时候都会有一个赏心悦目的动画效果
9.tableview还有一个预估cell高度的方法
- (CGFloat)tableView:(UITableView*)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath*)indexPath
这样就可以让cell高度不确定的时候编辑了
10.有时候ui为了美观会让我们自定义cell下面的横线,比如横线颜色,横线长度等。
_tableView.tableFooterView = [UIView new];
_tableView.separatorInset = UIEdgeInsetsMake(0,15,0,15);
_tableView.separatorColor = hexColor(@"E3E8EE");
这样就可以在每个cell下面加横线,并且可以自定义系统横线的颜色
11.tableview系统自带的cell还有几种样式,比如cell右边带箭头的,带勾对号的,还有空心圈的样式
static NSString *rid=@"cellId";
UITableViewCell* cell = [tableView cellForRowAtIndexPath:indexPath];
if(cell ==nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:rid];
}
使用这种懒加载的方式加载cell,设置style样式就可以了。
每次写项目都会有各种问题,总觉得tabview类型表格已经写得够多了,然而复杂的类型遇到的不够多,要多总结自己遇到的问题。 ———————— SAW
网友评论