2012-01-23 3 views
1

サブビューの束を含むUIScrollViewがあります。ビューが最初に横または縦に読み込まれている場合、それぞれのレイアウトは問題ありません。しかし、私がオリエンテーションの変化に対処しようとすると何も起こりません。UIScrollViewが更新されない

私が問題と考えているのは、サブビューフレームは更新中ですが、再描画されていないことです。

私は姿勢変化にフレームを設定するには、今のようにこれを使用しています:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation  duration:(NSTimeInterval)duration { 
    int i = 0; 
    for(UIView *subview in [scroll subviews]) { 
     if([subview isKindOfClass:[GalleryThumbContainerView class]]) { 
      [subview setFrame:[self getFrameLandscape:i]]; 
      i++; 
     } else { 
     } 
    } 
} 

デバイスがポートレートであると私は新しいフレームが更新されるサブビューの景観なしにそれを回転させた場合。

私がデバイスをポートレートにしておき、ビューを離れると、新しいフレームがすべて更新されます。

これは、セットが更新されていないという問題があると私に繋がります。私は試しました:

[self.view setNeedsDisplay]; 
[self.view setNeedsLayout]; 
[self.scroll setNeedsDisplay]; 
[self.scroll setNeedsLayout]; 

どれも動作しません。新しいフレーム

  • 再追加バックすべてのサブビューをscrollView
  • をすべてのサブビューを設定scrollView
  • のすべてのサブビューを削除

    1. :私はそれがで働く「作る」ために管理している

    これを行うにはもっとクリーンな方法があるようです。

    私はまた、サブビューサブクラス(口いっぱい)に方向変更リスナーを追加し、各サブビューの風景とポートレートフレームを保存しようとしました。その後、リスナーによって切り替えます。これはどちらもうまくいかなかった。

    お手数をおかけしますようお願い申し上げます。ありがとうございました。

    (scrollView.subviewsでのUIView *ビュー)のための
  • +0

    何UIViewContentModeRedrawにすべてのビューのコンテンツモードの設定は? http://developer.apple.com/library/ios/#documentation/uikit/reference/uiview_class/uiview/uiview.html –

    +0

    InterfaceOrientationの変更でもScrollViewのサイズを変更していますか? – alex

    +0

    @alexはい私はあります。 – random

    答えて

    0

    { 
        if ([view isKindOfClass:[UIImageView class]]) 
        { 
         [view removeFromSuperview]; 
        } 
    }