3

古いiOSバージョンでセルフレームを変更することで、TableViewセルのcontentViewをスライドさせることができます。ただし、オートレイアウトでスライドできません。私の場合、次の図のように、カスタマイズされたテーブル セルを作成します。

ここに画像の説明を入力

セルをスライドする前に、先頭と上部の制約をすべて削除しましたが、セルをスライドさせないようにする制約がまだいくつかあります。

"<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];

カスタムセルに問題があります:

*** -[UITableView layoutSublayersOfLayer:]、/SourceCache/UIKit_Sim/UIKit-2372/UIView.m:5776 でのアサーションの失敗
2012-12-05 22:45:14.987 Slider[3773:c07] *** キャッチされない例外 'NSInternalInconsistencyException' が原因でアプリを終了します。理由: '-layoutSubviews の実行後も自動レイアウトが必要です。-layoutSubviews の UITableView の実装では、super を呼び出す必要があります。

解決方法がわかりません、助けてください。

4

1 に答える 1

1

この同じ問題に遭遇しました。使用するとエラーが発生します

[aView setTranslatesAutoresizingMaskIntoConstraints:NO];

セル contentView. テーブル ビューのセルは、この設定をサポートしていないようです。

これを回避するには、すべてのコンテンツをコンテナー ビューに埋め込み、それをテーブルビュー セルのサブビューとして追加します。

UITableViewCellサブクラスを使用して、この回答「-layoutSubviewsを実行した後も自動レイアウトが必要です」を参照してください

于 2013-01-31T22:15:11.573 に答える