Closed Peter0065 closed 7 years ago
找到问题所在了。这边的场景是,cell里面内嵌tableview 在配置实体(外部tableview cellforrow时)的时候根据内部tableView内容cell的总高度(+= fd_heightForCellWithIdentifier )来调整tableView高度,使用的是autolayout。但是在cellforrow的时候storyboard或xib内容view并不是实际frame,我这边的xib宽度是320而实际是375pt的iphone6。因为调用了fd_heightForCellWithIdentifier
进而在- (CGFloat)fd_systemFittingHeightForConfiguratedCell:(UITableViewCell *)cell
里面
CGFloat contentViewWidth = CGRectGetWidth(self.frame);
中self(tableView)还是xib的宽度。320 < 375导致实际算计的label高度偏大。
解决方案: 在包含tableview的cell的awakeFromNib方法中调整cell的实际frame(我这边的场景直接就是屏幕宽度)
- (void)awakeFromNib {
[super awakeFromNib];
// Initialization code
CGRect rect = self.frame;
rect.size.width = SCREEN_WIDTH;
self.frame = rect;
[self layoutIfNeeded];
}
建议@sunnyxx 是否能考虑这种情况在后面的版本中优化一下?
楼主我也遇到了你这种情况,但不同的是,我竖屏下都没问题,只有的横屏下 多行的Label里面的文本内容上下会多出额外的空白高度。纯代码布局
此处每行cell内只有一个label,numberOfLines = 0 。当label内容大于一行时有出现额外的top和bottom 。 直接使用iOS8 self size cell表现正常