アンカーポイントを変更するときに、オブジェクトの位置を同じに保つためにオブジェクトのレイヤーのサイズを変更するこのコードが見つかりました。多くのユーザーがそれがどのように完璧に機能しているとコメントしたように、コードそのものが機能することは間違いありません。しかし、初心者として、私はこのメソッドを呼び出す方法がわかりません。 Ballオブジェクトのアンカーポイントを(2.0、0.5)から(0.5、0.5)に変更したい。AnchorPointメソッドを呼び出す
-(void)setAnchorPoint:(CGPoint)anchorPoint forView:(UIView *)view{
CGPoint newPoint = CGPointMake(view.bounds.size.width * anchorPoint.x,
view.bounds.size.height * anchorPoint.y);
CGPoint oldPoint = CGPointMake(view.bounds.size.width * view.layer.anchorPoint.x,
view.bounds.size.height * view.layer.anchorPoint.y);
newPoint = CGPointApplyAffineTransform(newPoint, view.transform);
oldPoint = CGPointApplyAffineTransform(oldPoint, view.transform);
CGPoint position = view.layer.position;
position.x -= oldPoint.x;
position.x += newPoint.x;
position.y -= oldPoint.y;
position.y += newPoint.y;
view.layer.position = position;
view.layer.anchorPoint = anchorPoint;
}
私は無駄
あなたが投稿したコードは、C#ではありません、それはObjective-Cのです。あなたが実際にObjective-Cソリューションを望んでいるかどうかは、あなたの質問からは分かりません。あなたがしていると仮定すると、あなたの質問はまだあなたが示していることは、あなたが知っている限り完全に動作するというコードでは不十分です。試したことを明確に示す良い[mcve]を提供する必要があります。さらに、そのコードが何をしているのか、何をしたいのかを正確に説明する必要があります。 _あなたは何を問題にしていますか? –
私は、アンカーポイントを変更するときにBallオブジェクトを所定の位置に維持したいと思っています。私は上記のコードがこれを達成することを知っていますが、私はそれをどのように使用するのか分かりません。また、私はObjective-Cを意味しました。 –
この質問は、あなたがobjective-cがどのように動作するのか、それをどのように読むか使用するのか分かりません。私はここで何か答えがあなたを助けるとは思わない - あなたはいくつかの基本的な言語ガイドを見なければならない。 – jrturton