質問

私は正しいフレームで初期化されUIViewController、しかしどこかに私のコードでフレームが台無しに取得し、私が困難見つけるを抱えているがあります。

このような状況では、それは変数ではないので、それはだ、しかし私は、変数ビューでcontroller->表示 - >フレームプロパティにアクセスする方法はありません、通常はデバッガで変数をwatchと便利ですプロパティ(驚くべきことに)

変数内のUIViewに掘削を示していくつかのことが、私は、フレームに関連することができます何も表示し、私はlayerであろうと、おそらくと思ったが、そうではありません。

プライベートAPIの変更を監視する方法はありますか?変数はあなたが何watchに正確に指定することはできませんので、「隠れた」と本質的なので、私は、ないと思います。

また、私は他にどのようなアプローチを使用することができますか?私はすでにsetFrameメソッドにこのサブクラスと破壊を指すように私のUIViewControllerのビューを設定し、UIViewのサブクラス化を試みたが、それは動作していないようでした。

EDIT:サブクラスUIViewのメソッドは、仕事をした、私はちょうど私のテストviewDidLoadでのサブクラスではなくinit方法を指すようにビューを設定する必要がありました。これはこの種の問題にアプローチする最良の方法である場合、私はわからないとしてオープンこの質問を残して...

役に立ちましたか?

解決 2

私は、これは、キー値のオブザーバーを使用して行うことができます発見しました。

http://developer.apple.com /library/ios/#documentation/cocoa/conceptual/KeyValueObserving/KeyValueObserving.htmlする

他のヒント

サブクラスあなたのあなたがsetFrameメソッドを追跡し、書き換えしたいビューます:

@implementation MyTableView

- (void)setFrame:(CGRect)frame;
{
    NSLog(@"%@", frame);
    [super setFrame:frame];
}

@end

そして、それにブレークポイントを追加し、それが呼び出されたときにチェックするために、デバッガを使用しています。フレームが変更されますと、どこの変化から来ないとき最終的に、あなたが表示されます。

あなたはIVAR、VIEW2を作成し、ちょうどあなたのloadView方法であなたのビューに割り当てられた可能性があります。つまり、通常の変数のようにそれを見て、あなたを有効にする必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top