UITableViewCell设置accessoryType,子视图适配问题

解决部分cell设置AccessoryType,子视图适配问题,主要原因的contentView的宽度(width)大小的改变
如图,对勾imageView对不齐问题


屏幕快照 2017-01-13 下午3.08.54.png

1.创建自定义cell

1.自定义的Cell包含一个label和imageView
  • label和imageView居中对齐
  • label.Leading = 15 (距左15)
  • imageView.CenterX = SuperView.Trailing * 0.9
2.设置AccessoryType

奇数行设置为UITableViewCellAccessoryDisclosureIndicator
偶数行设置为UITableViewCellAccessoryNone


tableView.png

2.设置AccessoryView

奇数行设置AccessoryType,偶数行设置AccessoryView

if (indexPath.row & 1) {
    self.accessoryView = nil;
    self.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}else {
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 18, 40)];
    self.accessoryView = view;
}
tableView2.png
  • 1.设置AccessoryView后AccessoryType将不起作用
    因为Cell重用,所以设置AccessoryType之前需要将AccessoryView设置为nil
  • 2.不同类型的accessoryType对应的view的宽度不同UITableViewCellAccessoryDisclosureIndicator -> view.width = 18
    UITableViewCellAccessoryDetailDisclosureButton -> view.width = 52
    UITableViewCellAccessoryCheckmark -> view.width = 24
    UITableViewCellAccessoryDetailButton -> view.width = 32
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容