2012-03-23 8 views
1

私は現在、私のデバイスを回転させると、そのサイズを変更しないという難点に直面しています。ビューはスクロールビューに埋め込まれたimageViewです。ビューコントローラはナビゲーションコントローラに組み込まれています。私のView Controllerのコアコードは次のとおりです。(iphone)autorotationは私のビューのサイズを変更しません

- (void)viewDidLoad 
{ 

    [super viewDidLoad]; 

    [[self navigationItem] setTitle:self.imageTitle]; 

    [self.imageView setImage:self.myImage]; 

    self.scrollView.delegate = self; 

    self.scrollView.contentSize = self.imageView.image.size; 

    double scale = self.imageView.bounds.size.width * 1.0/self.myImage.size.width; 

    if (scale > self.imageView.bounds.size.height * 1.0/self.myImage.size.height) 
     scale = self.imageView.bounds.size.height * 1.0/self.myImage.size.height; 

    self.imageView.frame = CGRectMake(0, 0, self.imageView.image.size.width, 
    self.imageView.image.size.height); 

    [self.scrollView setZoomScale:scale]; 

} 

答えて

3

通常、ビューのいくつかの情報は、viewDidLoadより後で更新されることはありません。

viewDidLoadの完了前です。ペン先が完全に装着されていません。だからあなたはそれについてのサイズや他の詳細を得ることはできません。 viewWillAppearまたはviewDidAppearに表示サイズのクエリを移動

はこの問題を解決する必要があります。

希望すると、これが役立ちます。

+0

これは完全に正しいです。なぜなら、 'viewWillAppear'より前では、あなたのビューのサイズが実際には特定できないからです。 'UITabBarController'の中でiPhone画面に直ぐに' UIPopoverController'の中で、あるいはあなたがそれを行うことを明示的に意図している今あなた自身をノックした何らかのカスタムでプレゼンテーションしているかもしれません。 – Tommy

+0

ありがとう!それは問題を解決する! – yoyosir

+0

@bobnoble:良い答え! :) –

関連する問題