美文网首页
Xcoder6.1.1 坑之一

Xcoder6.1.1 坑之一

作者: funpig | 来源:发表于2015-02-04 20:52 被阅读917次

    今天在Xcoder6.1.1下遇到了UITableView的坑。运行时警告如下:

    Warning once only: Detected a case where constraints ambiguously suggest a height of zero for a tableview cell's content view. We're considering the collapse unintentional and using standard height instead.

    Google后得到解决方法:

    • 1 在代码里面设置cell的默认高度
    
    self.tableView.rowHeight = 44;
    
    
    • 2 在Storyboard里面调整cell的高度,让它不等于44.

    • 3 实现tableview的delegate方法

    
    - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    
    {
    
    return 44;
    
    }
    
    

    上面的方法的确能够避免警告的产生

    但是,如果你的cell不等于44,而且autolayout布局不完美的话,cell是实际高度还是44,问题并没有解决!

    举例说明:

    • 需要一个高度为20的cell来充当分割view,设置cell的高度为20,里面没有subview,实际显示为44.

    • 继续上面的设置,添加一个subview,添加约束‘上下左右’都距离superview为0,实际显示44.

    • 继续上面的设置,去掉所有的subview,重新添加一个UILabel,添加约束‘上下左右’都距离superview为0,实际显示20.

    • 继续上面的设置,去掉UILabel的text,实际显示44.

    • 继续上面的设置,重新加上text,设置hide为true,实际显示变回20

    • 继续上面的设置,cell高度减小到4, 实际显示还是20。 将UILabel的字体大小改到1后,显示为4. 这个时候如果再把cell高度改回20,实际显示高度还是4. 字体大小再改回10后,实际显示高度正常。这么看来这种方法,subview的显示内容回影响到superview。先这样吧!

    总结

    • 警告没有了不意味着程序运行就正常了!

    • 添加‘上下左右’约束,确保superview被撑住

    • 检查subview的显示属性

    • 参考链接

    相关文章

      网友评论

          本文标题:Xcoder6.1.1 坑之一

          本文链接:https://www.haomeiwen.com/subject/hhprxttx.html