4

View Controllerでautolayoutを使用して、uiviewをナビゲーションバーのように整列させています(上に整列し、トレーリングサイドとリーディングサイドに引き伸ばし、高さ44)。

このビューをサブクラス化しましたが、その間awakeFromNibにサブビューを追加したいと考えています。

ただし、これらのサブビューを (親ビューにも制約を付けて) 追加すると、機能しません。

最初は、制約が正しくプログラムされていないと思っていましたが、次のようにビューのフレームをログに記録した後:

- (void)awakeFromNib
{
    [super awakeFromNib];

    NSLog(@"%@", NSStringFromCGRect(self.frame));
}

次の出力が得られます。

2012-11-27 03:25:25.976 myApp[8262:c07] {{0, 0}, {0, 0}}

しかし、たとえば、touchesBegan:withEvent:ログインすると、正しいフレーム サイズがログに記録されます。

誰がこれを引き起こしているのか知っていますか?

setTranslatesAutoresizingMaskIntoConstraints:NOまた、関連するすべてのビューを設定しようとしました。しかし、何も機能していないようです。

前もって感謝します!

4

1 に答える 1

0

が呼び出されたときawakeFromNib、ビューはまだ作成されていません。このメソッドでビューからあらゆる種類のプロパティを取得する最善の方法は、[self view]プロパティにアクセスする前に呼び出すことです。

于 2013-03-19T16:03:23.390 に答える