1

Interface Builder でラベルを作成し、アウトレットを viewController にフックすると、次のようにラベルが viewDidLoad に記録されます。

NSLog(@"ラベル: %@",self.label);

(0,0,0,0)のフレームが得られます。self.view は 0 を超えるサイズを示します。古いプログラムのラベルも 0 を超えるサイズを示します。ラベルにテキストが記録されるため、正しく接続されています。これは Xcode 4.5 での変更ですか? Interface Builder で設定したフレームにアクセスするにはどうすればよいですか?

これはログです:

UILabel: 0x754e1b0; フレーム = (0 0; 0 0); text = 'これはラベルです'; clipsToBounds = YES; 不透明 = いいえ; 自動サイズ変更 = TM+BM; userInteractionEnabled = NO; レイヤー=...

4

2 に答える 2

0

これを試して:

NSLog(@"Label Frame: %@",NSStringFromCGRect(self.label.frame));
于 2012-10-09T19:41:13.930 に答える
0

通常、フレーム レイアウトは では信頼できませんviewDidLoad。ペン先の場合、これは問題になりません。ひょっとして AutoLayout を使っていませんか?

にも同じ値を記録してくださいviewWillAppear。これは確かに正しい値です。私は通常viewWillLoad、UI 要素を開始し、viewWillLoadそれらを正しく配置するために使用します。

于 2012-10-09T20:24:27.900 に答える