2

ビューに長い UIScrollView (高さ約 1000 ピクセル) があり、この UIScrollView の最後に UITableView があります。

cellForRowAtIndexPath は呼び出されません (デリゲートとデータソースが正しく接続されているかどうかを確認し、テーブルの IBOutlet が強力であることを確認しました) が、numberOfRowsInSection が呼び出されています。

UIScrollView がスクロールするときに TableView をリロードしようとしたので、テーブルがフォーカスされているときに cellForRowAtIndexPath が呼び出される可能性がありますが、うまくいきません。

tableview と scrollview を一緒に使用しようとしたときに、誰かが同様の動作に遭遇しましたか?

4

3 に答える 3

1

階層は次のようになります。

parentView があります。親ビュー内には、スクロール ビューとテーブル ビューがあります。したがって、あなたのテーブルビューは、親ビューの原点から 1000 のどこかにあります。

したがって、tableview が親ビューに表示されることはなく、デリゲートは起動されません。

于 2013-06-27T09:07:45.280 に答える
0

2020 年の更新、swift 5.X。tableview内部を許可するカスタム UITableView を作成するにはscrollview!

1) UITableView のサブクラスを作成します。

UIKitのインポート

final class ContentSizedTableView: UITableView { override var contentSize:CGSize { didSet { invalidateIntrinsicContentSize() } }

override var intrinsicContentSize: CGSize {
    layoutIfNeeded()
    return CGSize(width: UIView.noIntrinsicMetric, height: contentSize.height)
}

2) レイアウトに UITableView を追加し、すべての面に制約を設定します。そのクラスを ContentSizedTableView に設定します。

intrinsicContentSize3) Storyboard はサブクラスを考慮していないため、いくつかのエラーが表示されるはずです。実行時に ContentSizedTableView クラスのオーバーライドを使用します

于 2020-04-15T09:03:31.377 に答える