UICollectionViewCell自动布局以编程方式

时间:2016-06-26 17:05:53

标签: ios objective-c autolayout 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]; 方法中的代码:

<function read_grades at 0x000001F69E0FC8C8>

这是UI调试器的截图: enter image description here

为什么这些约束是灰色的?

谢谢!

1 个答案:

答案 0 :(得分:8)

contentViewUICollectionViewCell所有,因此执行此操作

self.contentView.translatesAutoresizingMaskIntoConstraints = NO;

打破了单元格中的布局。

对于您拥有的任何子视图并添加到内容视图但对于您不拥有的视图进行操作会有破坏布局的风险,这是非常合理的。

相关问题