1

UIBarButtonItemカスタムビューをUIButtonとしてカスタマイズする話が多いです。それは非常に明確です。これまでに見つけられなかったのは、驚いたことに、インターフェイスの回転を処理するカスタム UIBarButtonItems について言及されていないことです。これは、iPhone を回転させたときの一般的な動作であり、バー ボタンが垂直方向に押しつぶされます。ただし、UIBarButtonItem を通常の方法で (initWithCustomView:メソッドを呼び出して) カスタマイズすると、横向きに回転した後もスクイーズされません。そのための回避策はありますか?

4

3 に答える 3

1

まあ、私はかなりまともなUIApplicationDidChangeStatusBarOrientationNotificationカスタムクラスでの処理で解決策を見つけました。UIBarButtonItem

于 2013-04-28T03:39:40.453 に答える
0

UIBarButtonItem (カスタム UIButton) を新しい向きの画像とテキストで再構築するか、カスタム ビューのフレームをリセットする必要があると思います。

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    UIButton *rightItemButton = (UIButton *)self.navigationItem.rightBarButtonItem.customView;
    //resize the frame
    if (isLandscape) {

    } else if (isPortrait) {
        ....
    }
}
于 2013-04-25T10:04:50.240 に答える
0

IB から UIBarButtonItem を追加できる場合 (プログラムで作成する必要はありません)、スプリングとストラットを設定してデフォルトの動作を取得できます。このソリューションは私にとってはうまくいきました。

于 2013-04-25T10:48:39.610 に答える