Jek*_*tel 7 uilabel custom-cell ios autolayout nslayoutconstraint
我正在实现一个功能,其中我的单元格的所有标签都已根据包含每个标签的文本进行了调整.我已经在RayWanderlich教程的帮助下实现了这个功能,并且它适用于iOS 4的iPhone 4s,5和5s.如下图所示,其中显示了带有iOS 8.1的iPhone 5s模拟器
当我用iPhone 6或iPhone 6运行我的应用程序时,我得到了意想不到的行为,如下图所示,显示了iPhone 6模拟器

和iPhone 6 plus模拟器.

我创建了两个自定义单元格nib文件,一个用于iPhone 4,4s,5和5s,第二个用于iPhone 6和6 plus.由于我是自动布局的新手,我设置了两个笔尖相同的约束.我正在下面的图像中显示具有设置约束的自定义单元格nib文件.
iPhone 4,4s,5和5s nib文件快照

iPhone 6和iPhone 6以及自定义单元格nib文件快照

我还使用了以下代码片段,其中单元格已使用动态高度调整大小.该代码适用于iPhone iPhone 4(适用于iOS 7),4s,5和5s(适用于iOS 7和iOS 8和8.1),但不适用于iPhone 6和iPhone 6 plus.
代码片段
- (CGFloat)calculateHeightForConfiguredSizingCell_3:(MemberListTableViewCell_WithoutImage_3_iPhone *)sizingCell {
sizingCell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.tblView.frame), CGRectGetHeight(sizingCell.bounds));
[sizingCell setNeedsLayout];
[sizingCell layoutIfNeeded];
CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
//CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize withHorizontalFittingPriority:UILayoutPriorityDefaultHigh verticalFittingPriority:UILayoutPriorityDefaultHigh];
return size.height + 1.0f; // Add 1.0f for the cell separator height
}
Run Code Online (Sandbox Code Playgroud)
如果我出错了,请给我一个合适的解决方案.我已经浏览了很多东西,但无法正确解决这个问题.你的帮助会很明显.谢谢你.
小智 2
根据您对 iPhone6,6 Plus 中单元格高度的问题,您需要编写以下几行。
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension
Run Code Online (Sandbox Code Playgroud)
使用自动布局的动态单元格大小参考: http://www.appcoda.com/self-sizing-cells/
| 归档时间: |
|
| 查看次数: |
819 次 |
| 最近记录: |