0

を使用してビューを移動します。 を使用CGAffineTransformTranslateすると、移動してNSlog: view.center.xもこの値は変化しませんか? でも私NSlog: view.frame.orgin.x、この現在値は私が動くと常に変化します!では、移動時に現在の値の中心を取得するにはどうすればよいですか?

4

1 に答える 1

7

フレームの中心を取得する必要があります。これはかなり簡単に実現できます。

次のような関数を定義します。

CGPoint CGRectCenter(CGRect rect)
{
    return CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect));
}

そして、次の方法でビューの中心を取得できます。

CGRectCenter(view.frame);

編集:

propertyのドキュメントをframe見たところframe、変換が適用されている場合、の値は未定義であると書かれています。view.layer.frameCALayer のドキュメントには同じ警告が表示されないため、を使用したほうがよい場合があります。ただし、UIView メソッドは CALayer メソッドを呼び出しているだけなので、問題ないかもしれません。

于 2012-12-09T13:29:30.817 に答える