これが私が直面している問題です。メインビュー内に UITableView があります。ユーザーがメニューボタンをタップすると、ビューがスーパービューのビュー階層に追加され、このビューはメニューボタンを除くすべての画面をカバーします。それは私が呼ぶ
[self.view insertSubview:self._menuView belowSubview:self._menuButton]
ユーザーがメニューボタンをもう一度クリックした後、私は呼び出します
[self._menuView removeFromSuperview]
ただし、この後、UITableView はスクロールを停止し、実際にはスクロールしますが、ほんの数ピクセルだけスクロールし、_menuView を挿入する前の場所に戻ります。_menuView を挿入および削除した後にメニュー階層を監視しましたが、実際には削除されており、UITableVIew をカバーするビューもないため、他のビューが UITableView からタッチを盗む可能性はありません。何が問題になる可能性がありますか? 何か案は?
編集 1:スクロールできないことに加えて、別の奇妙なことが起こることに気付きました。menuView を表示すると、アニメーションなしで tableView が一番上にスクロールされます。(menuView は半分だけ不透明なので、その下に tableView が見えます)
編集 2: _menuView を挿入する前後に、tableView の contentSize と contentOffset を監視しました。スクロールできない理由は、何らかの形で contentSize が変更されているためです。
TABLE VIEW BEFORE INSERTING MENU - contentSize:{Width=320, Height=10519} contentOffset:{X=0, Y=3980}
TABLE VIEW AFTER INSERTING MENU - contentSize:{Width=320, Height=44} contentOffset:{X=0, Y=0}
ご覧のとおり、高さが 44 に変更されているため、スクロールできません。また、編集 1で述べたように、 tableView が一番上にスクロールされているため、contentOffset もゼロになっていることがわかります。コンテンツのサイズが自動的に変更される理由はありますか?
前もって感謝します。