0

iPad の横向きでは、画面のほぼすべての幅を占める右側のパネルがあります。

このようにパネルを構成しました

[[self viewController] setShouldResizeRightPanel:YES];
[[self viewController] setRightGapPercentage:0.93f];
[[self viewController] setAllowRightOverpan:YES];

問題は、右側のパネルの左側の部分に触れることができないことです (ビューの ~ 25% がタッチに反応しません)。に設定shouldResizeRightPanelするNOと、使用可能な幅の 80% パーセント (rightGapPercentage のデフォルト値) が使用され、タッチは適切に機能しますが、パネルは使用可能な幅全体を占有しません。

これはバグですか、それともこれを実現するために設定する必要があるものを見逃したのでしょうか?

ありがとうございました。

4

1 に答える 1

0

これで解決したと思いますが、これが正しい方法かどうかはわかりません。

メソッドでは、

- (void)_animateCenterPanel:(BOOL)shouldBounce completion:(void (^)(BOOL finished))completion;

アニメーション ブロックの条件をコメント化して、すべてのスタイルでif (self.style == JASidePanelMultipleActive)サイド コンテナーを正しくレイアウトできるようにします。[self _layoutSideContainers:NO duration:0.0f];

今のところ、正常に動作しています。

編集

さて、私は調査を続け、私は_layoutSidePanels. 条件がありif (self.shouldResizeRightPanel) {、これは古いコードです:

frame.origin.x = self.rightPanelContainer.bounds.size.width - self.rightVisibleWidth;
frame.size.width = self.rightVisibleWidth;

そして、これが私のコードです。これにより、パネルが正しくレイアウトされ、すべてがタップ可能になります。以前の解決策は間違っていました。

[self.rightPanelContainer setWidth:self.rightVisibleWidth];
[self.rightPanelContainer setOriginX:self.rightVisibleWidth * (1.0f - self.rightGapPercentage)];
frame.origin.x = 0.0f;
frame.size.width = self.rightVisibleWidth;

コードの根幹にはもっと何かがあると思います。

于 2013-05-27T10:43:33.287 に答える