12

有一个自定义表格单元格,它有自己的 .XIB 和 .h 和 .m。没什么太花哨的。当设备旋转时,单元格宽度不会改变。索引路径的表格单元格被调用,但宽度没有变化(比如从纵向到横向)。什么会阻止这种情况?

不想手动设置帧大小。

如果需要,将发布代码,但也许我们可以在这个没有代码的情况下回答。

即使以横向启动应用程序也不会为单元格设置更大的宽度。

[添加]

也不适用于非自定义单元格。

self.tableViewSelection.autoresizesSubviews = true;
self.tableViewSelection.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
self.view.autoresizesSubviews = true;

表的 XIB 的大小调整似乎设置正确(非 IOS6 支持)。

4

5 回答 5

8

如果您要覆盖 thelayoutSubviews或其他方法,请不要忘记将其称为 super:

override func layoutSubviews() {
    //...

    super.layoutSubviews()
}

不这样做会导致您面临的问题。

于 2015-09-04T20:22:28.150 回答
2

单元格将自动与表格视图具有相同的宽度。所以没有调整大小的可能是表格视图。您需要给它适当的约束(如果使用 Autolayout,iOS 6 中的默认设置)或自动调整掩码(否则),以便它会调整大小以响应顶级视图调整大小以补偿设备旋转。

于 2013-05-13T17:48:51.980 回答
1

在旋转时自动调整自定义单元格时,我也遇到了同样的问题。战斗后我得到了授权cell.contentView的解决方案,因为我将我的视图作为子视图添加到cell.contentview中。

我使用了以下代码,我的代码工作正常:)

cell.contentView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
于 2013-07-02T05:54:47.010 回答
1

对于 swift 2,它将是:

cell.contentView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
于 2016-01-21T15:29:09.700 回答
0

在 Swift 4 中,以下工作。

cell.cellUIView.autoresizingMask = [.flexibleWidth, .flexibleHeight]

注意: cellUIViewUIView我添加到contentView原型单元格的。

于 2018-01-26T20:37:46.763 回答