2

を使用してアプリの bg を表示しUIImageViewます。正しいインターフェイス ローテーションをサポートするには、layoutSubviewsメソッドを記述します。このメトド .frame プロパティでは正しく変更されますが、次のUIImageViewように画像を変更しようとすると:

view = [self viewWithTag:1002];    
 ((UIImageView *)view).image = [UIImage imageNamed:@"portrait.png"];

何も変わっていません。私は何か間違ったことをしましたか、それとも方法でのイメージを変更することは不可能UIImageViewですlayoutSubviewsか?

4

2 に答える 2

4

これを試して

- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation {

    // change background here

    }
于 2011-03-07T08:57:43.317 に答える
1

UIViewControllerを使用してビューの回転を管理します(こちらのドキュメントを必ず確認してください: http://developer.apple.com/library/ios/#documentation/uikit/reference/UIViewController_Class/Reference/Reference.html ) . UIImageViewUIViewControllerを実装した場合、メソッドで画像を設定できますviewDidLoad:

layoutSubviews:このアクションを実行するメソッドをオーバーライドしないでください。layoutSubviews:名前にあることを実行することです。このビューが現在持っているサブビューの配置とサイズ変更を実行する必要があります。サブビューの特別なカスタム レイアウトを行い、 UIViewが「サイズ変更が必要」に設定されているときに実行ループで呼び出される場合を除き、このメソッドをオーバーライドする必要はありません。

コード内の他の場所から画像を設定することを強くお勧めします。ビューが回転したときに画像を変更したい場合は、 UIViewControllerサブクラスの- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientationメソッドで画像を設定できます。

于 2011-03-07T09:02:03.483 に答える