5

CGRectMake(x、x、x、x)を使用してビューにボタンを配置しました。もちろん、xは場所とサイズです。-(BOOL)shouldAutoRotate ...を使用してビューを回転すると、ボタンの位置を縦向きモードの中央から横向きモードの中央に変更したいと思います。ボタンのラベルには、ユーザーが設定した情報が含まれているため、横向きに別のビューを使用したくありません。彼らが何かを縦向きに設定し、水平に回転させたらどうなるでしょうか?彼らはデータを失います。だから私の質問は:以前に設定されたものをどのように動かすのですか?以下のコードを参照してください。ボタンを再割り当てしたくありません。ありがとう!

// DATE

lblDate = [[UILabel  alloc] initWithFrame:CGRectMake(x, y, width, height)];

lblDate.text = @"Date:";
lblDate.backgroundColor = [UIColor clearColor];
[contentView addSubview:lblDate];
4

3 に答える 3

14

フレームを新しいRectと等しく設定するだけです。

lblDate.frame = CGRectMake(x,y,width,height);
于 2011-07-08T18:19:55.990 に答える
0

lblDate.frame = newRect

ただし、これにはおそらく自動サイズ変更フラグを使用する必要があります。

于 2011-07-08T18:20:30.383 に答える
0

UIViewクラスリファレンスにあります。

フレーム

スーパービューの座標系でのビューの位置とサイズを表すフレームの長方形。

@property(nonatomic)CGRectフレームディスカッションこの長方形は、スーパービューの座標系でのビューのサイズと位置を定義します。レイアウト操作中にこの長方形を使用して、ビューのサイズと位置を決定します。このプロパティを設定すると、centerプロパティで指定されたポイントと、それに応じて境界矩形のサイズが変更されます。フレーム長方形の座標は常にポイントで指定されます。

警告:変換プロパティがID変換でない場合、このプロパティの値は未定義であるため、無視する必要があります。

フレームの長方形を変更すると、drawRect:メソッドを呼び出さなくても、レシーバーが自動的に再表示されます。フレームの長方形が変更されたときにdrawRect:メソッドを呼び出す場合は、contentModeプロパティをUIViewContentModeRedrawに設定します。

このプロパティへの変更はアニメーション化できます。ただし、transformプロパティに非ID変換が含まれている場合、frameプロパティの値は未定義であり、変更しないでください。その場合、centerプロパティを使用してビューの位置を変更し、代わりにboundsプロパティを使用してサイズを調整できます。

于 2011-07-08T18:25:46.987 に答える