3

私は、UITableView2 つのセクションと動的な数の行を持つ単純なテーブル ビューを持っています。UIViewまた、セクション ヘッダーの を返しています。

テーブルがリロードされるときを除いて、すべてが完璧に機能します。ビューがスクロールを開始するまで、セクション ヘッダーの位置はランダムな位置に移動します。

ヘッダー ビューとスーパー ビュー内の自動レイアウトは違反していないようです。テーブル フッター ビューを設定するかnil、ページネーション アニメーションを表示します。テーブルビューはスクロールビュー内にあります。

セクション ヘッダーでこの不具合が発生する理由の提案または解決策。そして、この不具合はiOS 9でのみ発生します

4

2 に答える 2

5

ビューコントローラーの一部ですが、私にとっての問題はリフレッシュコントロールとは無関係でした。と に関連しestimatedRowHeightていrowHeightました。

経験的な解決策を見つけました。ビューコントローラーとリロードされたテーブルビューの間を行ったり来たりすると、私の問題が発生しました。

私のセルの高さは可変であるため、次のものがありました。

self.tableView.rowHeight = UITableViewAutomaticDimension;
self.tableView.estimatedRowHeight = 44.0f;

セルの自動サイズ変更を処理できます。どうやら問題はestimatedRowHeight. セル行の最大高さで値を変更すると、グリッチが消えました。テーブルセクションはもうジャンプしていませんでした。ビュー インスペクタを使用して、最悪のユース ケースに基づいて行の高さを計算しました。

注#1

千個の細胞でどのように機能するかはわかりません。estimatedRowHeightを使用してコンテンツ オフセット全体を計算する必要があるため、最悪のケースを考慮すると非効率になる可能性があります。

注#2

セルの最大高さを計算するときは、セルがこれらの変更に登録されている場合、システム設定によってフォント サイズを大きくできる場合を考慮してください。

于 2016-12-01T08:59:43.520 に答える
1

私の問題は次のように解決されます。

最初に、テーブル ビューのサブビューとして更新コントローラーを追加しました。

_chatListRefreshControl = [[UIRefreshControl alloc] init];
_chatListRefreshControl.transform = CGAffineTransformMakeScale(0.7, 0.7);
[_chatListRefreshControl addTarget:self
                            action:@selector(refreshChatListView:)
                  forControlEvents:UIControlEventValueChanged];
[self.myChatsTableView addSubview:_chatListRefreshControl];

次のように変更しました: 更新インジケーターをテーブル ビューからテーブル ビュー コントローラーのプロパティに変更しました。

UITableViewController *chatTableViewcontroller = [[UITableViewController alloc] init];
    chatTableViewcontroller.tableView = self.myChatsTableView;
    _chatListRefreshControl = [[UIRefreshControl alloc] init];
    _chatListRefreshControl.transform = CGAffineTransformMakeScale(REFRESH_INDICATOR_SCALE_FACTOR, REFRESH_INDICATOR_SCALE_FACTOR);
    [_chatListRefreshControl addTarget:self action:@selector(refreshChatListView:) forControlEvents:UIControlEventValueChanged];
    chatTableViewcontroller.refreshControl = _chatListRefreshControl;
    [self addChildViewController:chatTableViewcontroller];
于 2016-11-29T12:49:02.370 に答える