Ios 自动调整UITableViewCells的大小

Ios 自动调整UITableViewCells的大小,ios,swift,uitableview,uiimageview,autolayout,Ios,Swift,Uitableview,Uiimageview,Autolayout,我一直在尝试开发一个应用程序,其中包含自调整大小的表视图单元格。我查阅了很多教程和在线文档,发现了以下两行代码: self.tableView.rowHeight = UITableViewAutomaticDimension self.tableView.estimatedRowHeight = UITableViewAutomaticDimension (and tried with 44 here also) 这些单元的工作原理如下: 用户可以写一些东西并选择是否上传图像。单元格将根据是

我一直在尝试开发一个应用程序,其中包含自调整大小的表视图单元格。我查阅了很多教程和在线文档,发现了以下两行代码:

self.tableView.rowHeight = UITableViewAutomaticDimension
self.tableView.estimatedRowHeight = UITableViewAutomaticDimension (and tried with 44 here also)
这些单元的工作原理如下:

用户可以写一些东西并选择是否上传图像。单元格将根据是否存在图像以及文本大小调整大小

我的问题是:

我正在使用标签来保存文本,已设置为0行。但我无法将反文本对齐到左上角。用户可以写的内容是有限制的; 保存图像的UIImageView也是固定大小的,并且图像设置为aspect以适应我无法想出更好的解决方案; 我上面展示的代码没有任何作用。我应该取消选中某些内容还是在单元格属性中执行某些操作? 我应该如何设置约束条件?标签和UIImageView的名称?
其实很简单。必须从上到下设置所有约束,但不要设置任何高度约束

我的建议是从一个简单的布局开始,看看它是如何工作的。例如:仅创建一个行数设置为0的UITextView。对于该示例,您只需要4个约束:

•V:|-0-[textView]从文本视图到超级视图顶部

•V:[textView]-0-|从文本视图到超级视图底部

•水平约束从左到右到superview

如果您设法使其工作,请添加UIImageView。请记住,您拥有从上到下的所有垂直约束

V:|-0-[textView]-0-[image]-0-|

不要在任何地方设置高度约束-高度将根据intrinsicContentSize方法自动推断

现在我已经解释了如何做,我要告诉你不要这样做:性能可能会很糟糕-忘记60 FPS,特别是如果你有分页-如果你加载下20个单元,它将不得不计算20个高度,这需要很多时间=>口吃。我是根据这里的经验说的。忘记UITableViewAutomaticDimension,手动计算所有内容—这并不难

但是自动布局呢?真的像我说的那么慢吗 关于也许你会感到惊讶,但这是事实。极其缓慢 如果你想在你的应用程序中看到所有实际屏幕上完美的平滑滚动 具有较长生命周期的设备,尤其是与Android相比 设备。子视图越多,自动布局工作的速度就越慢


欢迎来到StackOverflow!如果你有多个问题,你应该分别发帖。你的帖子有点像现在一样势不可挡。@NateBarbettini谢谢你的评论!我只是把它们放在一起,因为我认为一个处理程序可以解决所有问题。下次会小心的!多谢各位!我会尝试手动操作。所以我必须为高度标签和UIImageView的高度设置一个最大尺寸,并根据该值工作,对吗?谢谢,有很多关于如何计算标签高度的教程。记住要缓存你的计算!非常感谢你!最后一件事:在单元格大小检查器上,我有一个选项可以选中和取消选中“自定义”并设置行高。我应该勾选你不勾选吗?或者我也应该在“表视图”菜单上执行任何操作?再次感谢!如果您在代码中返回一个高度,那么在委托上,它将以任何方式覆盖它,所以这并不重要。只有你不推翻它,它才有意义。