0

フルサイズのUIImageViewについていくつか質問があることは知っていますが、それでも問題が解決しません。

ナビゲーションバー、スクロールビュー、UIImageView(avatarTestという名前)、ボタンがあります。画像を押すと、UIImageViewがフルサイズ(320 * 480)に展開され、avatarTest.contentModeがModeCenterに設定されます。

私の問題は次のとおりです。

  • UIImageViewは320*480に拡張されましたが、ナビゲーションバーとステータスバー(写真1と2のように)を置き換えませんでした

  • 下にスクロールして(ボタンが表示されます)、画像を押すと、UIImageViewは古いビューに従って展開されます。フルサイズに拡大して、現在のビュー(ウィンドウ)を埋めたい(写真3と4のように)

  • UIImageViewの原点フレーム(CGRectMake)をコードで判別して、2回目のプレスアクション(画像のサイズを原点に変更)をコーディングできるようにする方法を知りたい

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

ここに画像の説明を入力してください

これが私のviewController.mコードです:

- (IBAction) expand {

    [UIView animateWithDuration:0.5f animations:^{
    CGRect screenRect = [[UIScreen mainScreen] bounds];
        CGFloat screenWidth = screenRect.size.width;
        CGFloat screenHeight = screenRect.size.height;            
        avatarTest.frame=CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, screenWidth, screenHeight);
        avatarTest.contentMode=UIViewContentModeCenter;
        avatarTest.backgroundColor = [UIColor blackColor];


    }]; 
} 
4

2 に答える 2

3

まず、フレームが正しいことを確認する必要があります。原点のxとyを保持していることに気付きました。おそらく、これらは毎回リセットする必要があります。いくつかの実験はすぐに望ましい結果につながります。

次に、を設定するcontentModeUIViewContentModeCenter、画像が拡大縮小されなくなります。次のいずれかのように画像を拡大縮小するコンテンツモードを有効にする必要があります。

UIViewContentModeScaleToFill
UIViewContentModeScaleAspectFit
UIViewContentModeScaleAspectFill

最後に、ナビゲーションバーをカバーするには、メインビューからビューを削除し、代わりにウィンドウに追加する必要があります

[avatarTest removeFromSuperview]; 
[self.view.window addSubview:avatarTest]; 

もちろん、リセットするには、逆の操作を行う必要があります。
また、でこれをクリーンアップすることをお勧めしviewDidDisappearます。

于 2013-03-05T17:21:16.113 に答える
2

ステータスバーとナビゲーションバーを取り除くには、それらを非表示にする必要があります。アニメーションなしでそれらを非表示にするには...

[self.navigationController setNavigationBarHidden:YES animated:NO];
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];

そしてもちろん、それらを元に戻したい場合は、hiddenをNOに設定する必要があります。

于 2013-03-05T17:25:23.490 に答える