Ios 卷轴上的自动布局问题

Ios 卷轴上的自动布局问题,ios,xcode,autolayout,interface-builder,Ios,Xcode,Autolayout,Interface Builder,我有.xib,它有一些自动布局(可能需要单击以缩放): 没什么特别的,我有13pt与superview边框的间距。 然后将该xib加载到代码中的tableViewCell中 我还在表格的viewDidLoad中设置高度,如下所示: [self.tableView setEstimatedRowHeight:40]; [self.tableView setRowHeight:UITableViewAutomaticDimension]; 我的cellForRowAtIndexPath是: UI

我有
.xib
,它有一些自动布局(可能需要单击以缩放):

没什么特别的,我有
13pt
与superview边框的间距。 然后将该xib加载到代码中的tableViewCell中

我还在表格的
viewDidLoad
中设置高度,如下所示:

[self.tableView setEstimatedRowHeight:40];
[self.tableView setRowHeight:UITableViewAutomaticDimension];
我的cellForRowAtIndexPath是:

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:reuseId forIndexPath:indexPath];
---或者---(两者都没有区别)

现在乐趣开始了。自动布局可以在需要的时候工作,有时我会将单元格从视图中滚动出来,然后将其带回来,但大小不同。见下图:

你知道我做错了什么吗

PS:这里的截图中没有,但我确实有一些单元格有很多文本,看起来和左边的大单元格一样高

PPS:我尝试了以下方法,但没有成功(基于本文):

  • 增加了
    [self.tableView重载数据]在viewDidLoad中
  • 我删除了标签上明确的首选宽度

    • 你有这种行为的一个原因是你使用

      cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
      
      尝试使用

      cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
      
      相反。这将根据需要重复使用大小相同的单元格


      当然,检查
      heightforrowtaindexpath
      方法是否正确设置值

      我也遇到了同样的问题,如果在
      -tableView:willDisplayCell:forRowAtIndexPath:
      中专门设置标签文本,而不是在
      -tableView:cellForRowAtIndexPath:
      中设置标签文本,那么您将观察到随机大小不正确的单元格的行为


      我创建了一个测试项目来演示这一点

      您是否也在
      heightForRowAtIndexPath
      函数中设置此单元格的高度?我正在执行此操作
      [self.tableView setestimatedroweight:40];[self.tableView setRowHeight:UITableViewAutomaticDimension]你能提供你的cellForRowAtIndexPath吗?”多罗补充道。我在答案中尝试了你的建议,但没有成功:(你有13个点间距,而不是13个像素,直到从大到小:(
      
      cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];