UITableviewCell的坑,iOS7上label不能折行显示

今天解决了一个bug,困扰了好几个小时,原来是cell的contentview在作怪

在给cell加控件的时候,代码如下

UITableviewCell的坑,iOS7上label不能折行显示_第1张图片
错误的代码

在iOS8 iOS9上运行是没问题的,但是在iOS7上运行的时候就会出现以下结果


UITableviewCell的坑,iOS7上label不能折行显示_第2张图片
错误的结果

原因就是在addSubview的时候写错了,应该是【self.contentView addSubview _msgLabel】,如下


UITableviewCell的坑,iOS7上label不能折行显示_第3张图片
正确的代码

这样才会出现正确的结果


UITableviewCell的坑,iOS7上label不能折行显示_第4张图片
正确的结果

关键在于这个contentView,cell的frame要比contentView的frame大,所以我们直接加到cell上的控件很可能不是我们想要的结果,以后在cell上加控件要写在contentView上,而且官方注释如下

If you want to customize cells by simply adding additional views, you should add them to the content view so they will be positioned appropriately as the cell transitions into and out of editing mode.

如果你想在自定义cell上加控件,就需要把控件加到contentView上,这样才会正确的现实出它们的位置,并且不受编辑模式的影响

你可能感兴趣的:(UITableviewCell的坑,iOS7上label不能折行显示)