Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何停止自动调整UITableViewCell的大小,使其无法设置调整大小的动画?_Ios_Iphone_Ios8_Ios8.1 - Fatal编程技术网

Ios 如何停止自动调整UITableViewCell的大小,使其无法设置调整大小的动画?

Ios 如何停止自动调整UITableViewCell的大小,使其无法设置调整大小的动画?,ios,iphone,ios8,ios8.1,Ios,Iphone,Ios8,Ios8.1,如果UITableViewController是第一个显示具有可变单元格高度的UITableView的视图,那么我看到的所有示例都能很好地工作。但是,当我从一个表格推到另一个表格时,同样的方法不起作用,因为表格的单元格高度是可变的 我在github上安装了一个。请随意下载并处理它 单击“单击我”时,表格将推送到另一个表格视图,该视图包含高度可变的单元格。第二个表显示完成后,您就可以看到单元格正在调整大小,尤其是包含更多内容的单元格。在这种情况下,看到实时调整大小是很烦人的。我希望单元格在显示之前

如果UITableViewController是第一个显示具有可变单元格高度的UITableView的视图,那么我看到的所有示例都能很好地工作。但是,当我从一个表格推到另一个表格时,同样的方法不起作用,因为表格的单元格高度是可变的

我在github上安装了一个。请随意下载并处理它

单击“单击我”时,表格将推送到另一个表格视图,该视图包含高度可变的单元格。第二个表显示完成后,您就可以看到单元格正在调整大小,尤其是包含更多内容的单元格。在这种情况下,看到实时调整大小是很烦人的。我希望单元格在显示之前正确调整大小

有没有人有类似的问题或解决方案


您不需要cellForRowAtIndexPath中的一些代码,最好在IB或单元格代码中设置numberOfLines。我将CellForRowatineXpath更改为如下所示,并在单元格中添加了如下代码:

在牢房里

override func didMoveToSuperview() {
    self.titleLabel.numberOfLines = 0
    self.subTitleLabel.numberOfLines = 0
    self.layoutIfNeeded()
}
在cellForRowAtIndexPath中

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MyCell
        let content = self.data[indexPath.row]
        cell.titleLabel.text = content.line1
        cell.subTitleLabel.text = content.line2
        return cell;
    }

如果没有单元格代码中所需的layoutifn,则在显示第二个表时,我没有看到任何正在扩展的行—仅在滚动或旋转之后。有了它,一切似乎都很顺利

将此添加到MyCell.swift似乎也消除了实时调整大小的问题。我不知道这与@rdelmar解决方案有什么不同,但这似乎也能起作用

override func layoutSubviews() {
    super.layoutSubviews()
    self.titleLabel.preferredMaxLayoutWidth = self.titleLabel.frame.size.width
    super.layoutSubviews()
}
我从多行文本的内在内容大小中找到了这个答案

Since we usually don’t know this value in advance, we need to take a two-step approach to
get this right. First we let Auto Layout do its work, and then we use the resulting frame
in the layout pass to update the preferred maximum width and trigger layout again.

真正奇怪的是,这个解决方案在iPhone6模拟器中运行良好,但在iPhone5S模拟器中可以看到实时调整大小。