2012-04-20 6 views
0

私はinitWithFrameで作成したUIViewを持っています。私は、ビュー(およびこのような他のビュー)を押すとUIViewは2つの異なる方法で異なった方法で報告します

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ 
    NSLog(@"center: %f",self.center.x); 
} 

、それらはすべてが正常で彼らの中心点として理にかなって数を記録:

は、いくつかのタッチ対話をテストするために、私は次のことをやりましたビューのスーパービューの座標空間。 メソッド内で同じログステートメントを実行すると、 self.center.xはビューのスーパービューのスペースに座標を報告しません。代わりに、境界の中心となる点をレポートします。つまり、ビューが100ピクセル幅の場合は、すべてのビューに対して 50と報告されます。

私は理解できないことは、フレームがCGRectに渡され、ビューが適切な場所に表示されるため、これらのビューは移動せず、フレームはinitWithFrameの先頭にはっきりと設定されているということです。それで、なぜその方法でその中心だけを正しく報告しないのですか?

+0

あなたはinitWithFrameを投稿できますか? – danh

答えて

1

-initWithFrame:の間に、あなたのビューはまだスーパービューに追加されていません。

(他のいくつかのコードは、後にスーパーに追加します - ペン先ローディングコードの一部として、または手動のいずれか。)

+0

私は全く同意します...プラス5を追加します.. – Nit

関連する問題