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

Posted

技术标签:

【中文标题】自动布局动态大小 uitableview 单元格的最佳方法是啥【英文标题】:What is the best approach to autolayout dynamic size uitableview cells自动布局动态大小 uitableview 单元格的最佳方法是什么 【发布时间】:2015-02-20 09:56:47 【问题描述】:

我目前被困在尝试创建一个带有自动布局的 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 文件中进行了所有布局,其中子视图的大小已正确调整,但单元格高度未调整大小。

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

【问题讨论】:

您的目标是哪个 ios 版本?另外,编辑问题,以便我们可以更轻松地阅读您发布的代码。 你读过this tutorial吗?这是一个适合新手的好网站。 我的目标是 iOS 7 【参考方案1】:

显然我在睡觉或发生了什么变化

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

【讨论】:

以上是关于自动布局动态大小 uitableview 单元格的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

具有动态大小的单元格的复杂自动布局

使用自动布局约束动态调整表格视图单元格的大小

在 UITableView 中使用自动布局进行动态单元格布局和可变行高

在 UITableView 中使用自动布局进行动态单元格布局和可变行高

使用自动布局自定义集合视图单元格的动态高度

自动调整大小(动态高度)表格视图单元格的问题