私のアプリではiPhoneのホームボタンの向きに合わせてUIViewの向きを設定したいと思います。私は次のようにしてそれを行いました:iphone sdkでuiviewの位置を固定する
/* I handled view orientation in shouldAutorotate method*/
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
viewForBarButtons.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin;
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight)
viewForBarButtons.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
else if (interfaceOrientation == UIInterfaceOrientationPortrait)
viewForBarButtons.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin;
else if (interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
viewForBarButtons.autoresizingMask = UIViewAutoresizingFlexibleTopMargin;
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
ここで、viewForBarButtonsはviewController内のUIViewです。
しかし、私がreturn(interfaceOrientation == UIInterfaceOrientationPortrait)の代わりにYesを返すように設定した場合。それは動作しません。
この問題を解決する方法。誰もがそれを知っているなら、私を助けてください。 同様の機能がLifeCardsアプリに実装されています。 ありがとうございます。
で自己を置き換えるしかし、私は、ビューのサブビューを起源を変更する場合は邪魔取得します。 – Girish
1つの可能性があります。サイズを持つ親ビューを作成し(viewForBarButtonsよりもすべての側に必要なだけのパディング)、viewForBarButtonsをそのビューに追加します。 viewForBarButtonの目的の自動サイズ変更マスクを設定します。 contatinerにスーパービューを追加し、ビュー全体にサイズを変更してください(柔軟な高さと幅を設定するのを忘れないでください)。これはうまくいくはずです。 –
私はそれが "オリエンテーションの変更の間、他の側の前のポジション"になるとコメントしました。追加されたスーパービューに基づくポジションに基づいてケースを検討します。以前の間違いに対する謝罪 –