-1

プログラムで UIButtons をビューに追加していますが、向きの変更に基づいてそれらを再配置したいと考えています。

行と列に対して 2 つの for ループを実行し、2 つ目の for ループ内でボタンを作成しています。各ボタンにいくつかのプロパティと一意のタグを割り当てています。(例: UIButton の 10x10 グリッドを構築する最良の方法は? )

willAnimateRotationToInterfaceOrientation をリッスンして方向の変化を検出しており、タグに基づいてボタンを呼び出して新しい位置に移動することを望んでいました。

ボタンを削除できないように、ボタンの状態を保持する必要があります。再配置する必要があります。

助言がありますか?ありがとう。

4

2 に答える 2

1

これには 3 つの方法があります。

1) 自動サイズ変更マスクの使用: このアプローチを使用すると、何もする必要がなく、スーパービューに関してボタンに設定された自動サイズ変更マスクに基づいて、ボタンが自動的に再配置されます。

2) 2 番目の方法は、スーパー ビューの回転後にボタンを再配置することです。回転後のスーパー ビューの新しい幅と高さに基づいて、ボタンの新しいフレームを計算するメソッドを作成できます。次のような回転コールバックがあります

 - (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation

3)ボタンのスーパービューで以下のメソッドを実装し、ボタンのフレームをリセットすることもできます

- (void)layoutSubviews

お役に立てれば。

于 2013-04-02T18:33:09.727 に答える
0

これを使って:

    UIButton *button = (UIButton *)[self.view viewWithTag:1]; // change viewWithTag to your buttons tag number. Now you can use button to position it anyway you want.
    button.frame = CGRectMake(x, y, w, h); // x, y, width, height
于 2013-04-02T20:08:32.187 に答える