0

次のコードを使用して、プログラムでUIButtonを作成し、水平方向に中央揃えにしました

    button.center = CGPointMake(self.view.center.x, 50);

デバイスを回転させると、中心から外れます。この問題を解決するにはどうすればよいですか? 前もって感謝します。

4

2 に答える 2

1
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
    button.center = CGPointMake(self.view.center.x, 50);
}
于 2013-07-28T00:24:55.867 に答える
1

ケビンは正しいですが、より良い解決策は、View Controller のwillAnimateRotationToInterfaceOrientation:duration:メソッドでボタンの中心を設定することです。

- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation duration:(NSTimeInterval)duration
{
    button.center = CGPointMake(self.view.center.x, 50);
}

彼はdidRotateFromInterfaceOrientation:fromInterfaceOrientation 、Apple のドキュメントに記載されているように、「このメソッドは、ビュー インタラクションを再度有効にしたり、メディアの再生を再開したり、高価な描画やライブ更新をオンにしたりするために使用される可能性があります」という方法を使用します。

サブビューをレイアウトする場合willAnimateRotationToInterfaceOrientation:duration:、回転のアニメーション ブロック内から呼び出されるため、よりスムーズな遷移が提供されます。

于 2013-07-28T00:35:24.613 に答える