如何在Autolayout中滑动tableview单元格?

时间:2012-12-05 14:56:03

标签: ios cocoa-touch autolayout

我可以通过更改旧ios版本中的单元格框架来滑动TableView单元格的contentView。但是,我不能在Autolayout中滑动它。在我的例子中,我创建了一个自定义的表格单元格,如下图所示:

enter image description here

我在滑动单元格之前已经删除了所有前导和顶部约束,但是仍然存在一些限制来阻止我滑动单元格,例如

"<NSAutoresizingMaskLayoutConstraint:0x8a39c60 h=--& v=--& UITableViewCellContentView:0x8a2f640.midX == + 160>",
"<NSAutoresizingMaskLayoutConstraint:0x8a39ca0 h=--& v=--& H:[UITableViewCellContentView:0x8a2f640(320)]>",
"<NSAutoresizingMaskLayoutConstraint:0x8a39ce0 h=--& v=--& UITableViewCellContentView:0x8a2f640.midY == + 21.5>",
"<NSAutoresizingMaskLayoutConstraint:0x8a39d20 h=--& v=--& V:[UITableViewCellContentView:0x8a2f640(43)]>"

但是,如果我使用

    [self setTranslatesAutoresizingMaskIntoConstraints:NO];

在我的自定义单元格中,存在一个问题:

*** Assertion failure in -[UITableView layoutSublayersOfLayer:], /SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776
2012-12-05 22:45:14.987 Slider[3773:c07] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Auto Layout still required after executing -layoutSubviews. UITableView's implementation of -layoutSubviews needs to call super.'

我不知道如何解决,请帮助我。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。使用

时出现错误
[aView setTranslatesAutoresizingMaskIntoConstraints:NO];

在单元格contentView上。表格视图单元格似乎不支持此设置。

要解决此问题,请将所有内容嵌入到容器视图中,并将其添加为tableview单元格的子视图。

请参阅此回答"Auto Layout still required after executing -layoutSubviews" with UITableViewCell subclass