12

独自の .XIB と .h と .m を持つカスタム テーブル セルを用意します。派手すぎるものはありません。デバイスが回転しても、セルの幅は変わりません。インデックス パスのテーブル セルが呼び出されますが、幅は変更されません (縦から横など)。これを妨げているのは何ですか?

フレームサイズを手動で設定したくない。

必要に応じてコードを投稿しますが、これについてはコードなしで回答できるかもしれません。

ランドスケープでアプリを起動しても、セルの幅が大きくなりません。

[添加]

また、非カスタム セルでは機能しません。

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

テーブルの XIB のサイズ変更が正しく設定されているようです (非 IOS6 サポート)。

4

5 に答える 5

8

または別のメソッドをオーバーライドしている場合は、layoutSubviewsそれを super と呼ぶことを忘れないでください:

override func layoutSubviews() {
    //...

    super.layoutSubviews()
}

これを行わないと、直面している問題が発生します。

于 2015-09-04T20:22:28.150 に答える
2

セルは自動的にテーブル ビューと同じ幅になります。したがって、サイズ変更されていないのは、テーブル ビューである可能性があります。適切な制約 (iOS 6 のデフォルトである Autolayout を使用する場合) または自動サイズ変更マスク (それ以外の場合) を指定して、デバイスの回転を補正するためにトップレベル ビューのサイズ変更に応じてサイズ変更されるようにする必要があります。

于 2013-05-13T17:48:51.980 に答える
1

Swift 2の場合、次のようになります。

cell.contentView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
于 2016-01-21T15:29:09.700 に答える
1

回転時にカスタムセルの自動サイズ変更中にも、この同じ問題に直面しました。戦いの後、ビューをサブビューとしてcell.contentviewに追加しているため、cell.contentViewを承認するという解決策を得ました。

私は次のコードを使用し、私のコードは正常に動作します:)

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