什么是自动布局动态大小uitableview单元格的最佳方法

时间:2015-02-20 09:56:48

标签: ios objective-c iphone uitableview autolayout

我目前正试图创建一个带有自动布局的uitableview单元格,根据

中的“动态大小标签”动态调整大小

我的方法是uitableview单元的子类,在“updateConstraints”方法中我覆盖:

CGFloat width = [[UIScreen mainScreen] bounds].size.width;
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.contentView
                                                                 attribute:NSLayoutAttributeWidth
                                                                 relatedBy:NSLayoutRelationEqual
                                                                    toItem:nil
                                                                 attribute:NSLayoutAttributeNotAnAttribute
                                                                multiplier:1
                                                                constant:width]];
CGFloat height = self.frame.size.height;
[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.contentView
                                                                 attribute:NSLayoutAttributeHeight
                                                                 relatedBy:NSLayoutRelationEqual
                                                                    toItem:nil
                                                                 attribute:NSLayoutAttributeNotAnAttribute
                                                                multiplier:1
                                                                  constant:height]];;

[super updateConstraints];

同时我在nib文件中进行了所有布局,其中子视图正确调整大小,但单元格高度不会调整大小。

我在这里做的新手错误是什么?

1 个答案:

答案 0 :(得分:0)

显然我正在睡觉或者只是改变了什么

[self.contentView addConstraint:[NSLayoutConstraint constraintWithItem:self.contentView
                                                             attribute:NSLayoutAttributeHeight
                                                             relatedBy:NSLayoutRelationGreaterThanOrEqual
                                                                toItem:nil
                                                             attribute:NSLayoutAttributeNotAnAttribute
                                                            multiplier:1
                                                              constant:height]];;