UIView
クラスで作成するカスタムがあります。次に、それを画面に追加します。それがCGRect
. しかし、どうやら、この特定のサイズを取得できないようですUIView
。これが私のコードです:
CGRect labelFrame;
if (!tickerImage) {
labelFrame = CGRectMake(upperTextField.frame.origin.x + 8, upperTextField.frame.origin.y, 0, 0);
} else {
labelFrame = CGRectMake(upperTextField.frame.origin.x + 16, upperTextField.frame.origin.y, 0, 0);
}
SGNewLabel = [[SGAdressLabel alloc] initWithFrame:labelFrame];
[labelsArray addObject:SGNewLabel];
[self.view addSubview:SGNewLabel];
[SGNewLabel addNewLabelWithText:labelText andTickerImage:tickerImage];
UIView *lastLabel = [labelsArray lastObject];
CGRect newTextFieldFrame = CGRectMake(lastLabel.frame.origin.x + lastLabel.frame.size.width, labelFrame.origin.y, 320, 30);
upperTextField.frame = newTextFieldFrame;
ご覧のとおり、 に入れても間違っているように見えるupperTextField
カスタムのフレームに基づいてフレームを設定しました。将来のオブジェクトのサイズがわからないため、宣言の最後に設定しました。これが問題の原因です。SGNewLabel
NSArray
0, 0
labelFrame
どうすればそれを修正して、UIView の適切なサイズを取得できますか?
編集:私のビューの NSLog は私にこれを与えます:
NSLog(@"The rect of object is: %@", NSStringFromCGRect(self.frame));
2013-02-11 17:16:02.333 MyApp[2383:c07] The rect of object is: {{24, 55}, {0, 0}}
本体は普通に描かれていUIView
て原寸大で見れます。