2012-02-24 82 views
0

私はそれにdrawRectを持つUIViewのサブクラスを持っています。基本的には線と画像を描きます。 私はこれをviewDidLoadに描画しましたが、ビューがlandscapeに変更されたときにレイアウトを変更する必要があります。これをどのように再描画できますか?drawRectを使用して再描画

答えて

6

ビューのcontentModeUIViewContentModeRedrawに設定します。その境界が変わるたびにビューは[self setNeedsDisplay]を呼び出します。必要に応じて、ビューのサイズを変更するだけで済みます。

+0

あなたはそれをwillRotateToInterfaceOrientationに設定することを意味しますか?私はまた、UIViewのyの原点を変更しましたが、それは変更されません – xonegirlz

+0

適切な場合はビューのサイズを変更する必要がありますので、 'willRotateToInterfaceOrientation:'は良い候補です。そこに 'myView.frame = ...'を実行してください。ビューの 'frame'原点を変更しても、実際には' bounds'は変更されません(ビューの位置だけが影響を受けます)。ビューの 'frame'サイズを変更すると、 – Costique

関連する問題