gpt4 book ai didi

ios - iOS 7 和 8 的 UITableViewCells 自动布局指标不同

转载 作者:行者123 更新时间:2023-11-29 02:26:48 25 4
gpt4 key购买 nike

我有一个自定义 UITableViewCell只包含一个 UILabel保存静态文本,我写了两个 Autolayout代码中的约束(使用常规方式而非视觉格式)将标签的前缘和顶边固定到单元格的容器 View ,并且它适用于 iOS 7iOS 8设备,但在 iOS 8 中有一个奇怪的问题:标签的上边缘距离容器 View 的上边缘 12 像素(这是正确的预期指标)但在 iOS 8 中不止于此,大约 20 个像素,标签的前缘也会发生相同的移动。

这是什么意思?与UIKit有关吗?在 iOS 7 之间变化和 iOS 8对于 UITableViewCells现在包含一个隐藏的 scrollView在其层次结构中?

附注约束是:

 constraint = [NSLayoutConstraint constraintWithItem:self.myLabel attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeTop multiplier: 1.0 constant:12];
[self.contentView addConstraint:constraint];


constraint = [NSLayoutConstraint constraintWithItem:self.myLabel attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeading multiplier:1.0 constant:12];
[self.contentView addConstraint:constraint];

任何帮助将不胜感激......

最佳答案

就我而言,我需要在运行时手动向 ImageView 添加特定约束,结果是 iOS7(完全附加到单元格的左侧)和 iOS8(正确对齐)中的前导对齐不同。问题不仅存在于单元格中,甚至存在于 UITableView 约束中:

1)检查你的tableview前导和尾随约束,必须像那些:

enter image description here

对于前导和尾随,有时当您手动将表格 View 添加到 View Controller 时,对齐表格 View 左侧和右侧的自然方法是将其设置为 -16,这适用于 iOS 8,但不适用于 iOS 7 .

2) 如果您修改/添加一些约束,请检查单元格是否响应 setLayoutMargins(仅限 iOS8)以及是否更改约束的常量值:

CGFloat leftMargin = 8.0;
if ([self respondsToSelector:@selector(setLayoutMargins:)]) {
leftMargin = 0.0;
}

[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.userImageView attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.contentView attribute:NSLayoutAttributeLeadingMargin multiplier:1 constant:leftMargin]];

关于ios - iOS 7 和 8 的 UITableViewCells 自动布局指标不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27416316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com