iOS开发中自定义Cell上self addSubview和self.contentview addSubview的区别

在最开始自定义UITableViewCell在往Cell上添加子控件的时候使用的是self.contentView addSubView,后来在看视频学习的时候发现直接使用了self addSubView添加子控件,之前想搞明白它俩的区别可以在网上一直没有找到答案(搜索用的还是不好)。

今天在写一个自定义Cell的时候看了别人的代码用到了self.contentView addSubView,我瞬间好像明白了什么。

先说说别人自定义Cell的功能。

自定义的Cell能够左滑,滑出两个按钮(不像系统的只能滑出一个删除按钮),点击两个按钮进行不同的操作。

iOS开发中自定义Cell上self addSubview和self.contentview addSubview的区别_第1张图片

看用到self.contentView addSubView的代码:

iOS开发中自定义Cell上self addSubview和self.contentview addSubview的区别_第2张图片

当我跳进到contentView中才看到它的作用


翻译过来(有道直接翻译):

如果你想通过简单地添加额外的视图来定制单元格,你应该将它们添加到内容视图中,这样它们就可以适当地定位在单元格转换成和退出编辑模式的时候。

我的理解:

如果要让cell有编辑功能,如:左滑对cell进行删除,那么就要使用self.contentView addSubView。当我不使用self.contentView,而直接使用self的时候再去左滑发现原来的cell上的子控件并没有向左移动。

理解self addSubview和self.contentview addSubview的区别,今后就可以根据需求去使用它们了。

附上demo:https://github.com/yangguanghei/SlideToShowLeftMenu-UITableViewCell-(我怕今后找不到就放在了自己的git里,原作者莫怪)

为了方便了截了张别人的图


iOS开发中自定义Cell上self addSubview和self.contentview addSubview的区别_第3张图片
cell添加子视图不同方式的不同结果

增加内容:后来发现不使用contentView同样能实现相同的效果(我的错)

那这篇文章也放在这吧,学习下能左滑出多个按钮的自定义cell。

本篇文章到这里就结束了,愿大家加班不多工资多,男同胞都有女朋友,女同胞都有男朋友。

你可能感兴趣的:(iOS开发中自定义Cell上self addSubview和self.contentview addSubview的区别)