【发布时间】:2016-06-26 17:05:53
【问题描述】:
我正在尝试以编程方式创建一个UICollectionViewCell 子类。我正在尝试使用自动布局支持进行创建。
我想在单元格的内容视图中添加UIView,并添加前导、顶部、尾随和底部约束。但是当我这样做时,我的 UIView's 宽度和高度保持为零。这是我在initWithFrame 方法中的代码:
self.contentView.translatesAutoresizingMaskIntoConstraints = NO;
_someView = [[UIView alloc] initWithFrame:CGRectZero];
_someView.translatesAutoresizingMaskIntoConstraints = NO;
[self.contentView addSubview:_someView];
NSArray *horizontalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}];
NSArray *verticalConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-2-[someView]-2-|" options:0 metrics:nil views:@{@"someView" : _someView}];
[self.contentView addConstraints:horizontalConstraints];
[self.contentView addConstraints:verticalConstraints];
为什么这些约束是灰色的?
谢谢!
【问题讨论】:
-
您的所有约束是否都安装在您使用的任何大小类中?不确定可视化调试器,但 IB/Storyboards 灰色约束是项目中存在但未安装在编辑器显示的任何大小类组合中(默认为任意/任意)
-
您的控制台是否抛出任何布局警告?此外,在 contentView 上将
translatesAutoresizingMaskintoConstraints设置为 NO 可能会破坏单元格布局系统。尽量不要那样做。 -
@WarrenBurton 成功了!谢谢!!!!请作为答案回复,我会投票并批准!
标签: ios objective-c autolayout uicollectionviewcell