TableView看我就够了

2017-04-24  本文已影响58人  OwenKing

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

上一篇下一篇

猜你喜欢

热点阅读