2012-03-29 20 views
2

UIViewにいくつかのボタンを動的に描画します。私はいくつかの数学的計算に従ってフレームを決定し、私は、デバイスが回転したときに画面を再描画したい。回転通知用にコードを登録しました。didRotate:デリゲートメソッドが正しく機能します。どのように私は回転したときに画面を再描画できますか? さらに詳しい説明:回転モードがポートレートの場合は2列のボタンを描画し、横向きの場合は4列を描画します。ボタンのデータは動的で、HTTPサーバー(ボタンの数)回転後のボタンの再描画

+0

あなたは、ビューののdrawRectであなたのボタンを描画していますか?もしそうなら、didRotateでsetNeedsDisplayを呼び出すことができます:drawRectでオリエンテーションをチェックしてください。 –

+0

@PhillipMillsいいえ、私は別の方法で描画しません。しかし、私はそこにも描くことができます、私はしないでください? – ilhnctn

答えて

1

"willAnimateRotationToInterfaceOrientation"メソッドを使用して、デバイスを回転させるとビューを制御できるように助言します。 これはものを作るためにあなたのアイデアを与えるいくつかの簡単なコードが動作します:

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration { 

// if you are in portrait mode 
if (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown) 
{ 
    [yourOutletName setFrame:CGRectMake(255, 6, 25, 25)]; 
} 
// if you are in landscape mode 
else 
{ 
    [yourOutletName setFrame:CGRectMake(415, 6, 25, 25)]; 
} 
} 
+0

私はこれを試してみましたが、ブロック内のデータをダウンロードしました。私は効率的にbloxkを呼び出す必要があります。ご回答ありがとうございます – ilhnctn

関連する問題