私はこの質問に少し混乱しています。
を変えてビューを移動できることは知っているのですself.frame.origin
が、transform というプロパティがあることを知り、これは画面上でビューを移動するためのものなどだと思っていまし
た。
だから私は知りたい:移動UIView
(またはそのサブクラス)に使用する必要があるプロパティと、別のプロパティは何ですか?または、私が完全に間違っている場合は、正しい方法を教えてください。
私はこの質問に少し混乱しています。
を変えてビューを移動できることは知っているのですself.frame.origin
が、transform というプロパティがあることを知り、これは画面上でビューを移動するためのものなどだと思っていまし
た。
だから私は知りたい:移動UIView
(またはそのサブクラス)に使用する必要があるプロパティと、別のプロパティは何ですか?または、私が完全に間違っている場合は、正しい方法を教えてください。
のframe
プロパティは、そのUIView
スーパービューに対する相対的な位置を定義します。ビューを移動したい場合は、それが方法です。
このtransform
プロパティは基本的CGAffineTransform
に、ビューのバッキング レイヤーに適用されます。ほとんどの場合、ビューを移動するだけの場合は、このプロパティを使用したくないでしょう。
このtransform
プロパティは、レイヤー (つまりビュー) を回転またはスケーリングする場合に役立ちます。場合によっては、回転を適用するときに、その位置を「維持」するために移動する必要もあります。その場合は、transform
プロパティを使用して移動します。
さらに情報を追加するには
フレームを使用する理由。Viewプログラミングガイドより引用
アニメーションを実装する場合は、通常、ビューの変換プロパティを変更します。たとえば、このプロパティを使用して、ビューの中心点を中心に回転するアニメーションを作成できます。スーパービューの座標空間内でビューの位置やサイズを変更するなど、ビューに永続的な変更を加えるためにこのプロパティを使用しないでください。そのタイプの変更については、代わりにビューのフレーム四角形を変更する必要があります
変換を使用する理由。Demystifying CGAffineTransformから引用
翻訳とは、「動く」という言い方です。もちろん、ビューの frame プロパティの origin 値を変更することで移動を実行できます (スーパービューに関連してビューを移動します) が、フレーム プロパティを他の変換と共に使用できないため、移動変換は重要なもの。
フレームを更新することで UIView を移動できます。Transform は、ビューを回転およびスケーリングするために使用されます。ビューをアニメーションで動かしたい場合は、以下のようなアニメーション ブロックを使用してみてください。
[UIView animateWithDuration:0.3 //Time for the animation
animations:^{
myView.frame = CGRectMake (0,0,10,20) //Move your frame
}
completion:^(BOOL finished){
//Do stuff when the animation completes
}];
CGrect = rect1 = [view1 frame];
rect1.origin.x = newX;
rect1.origin.y = newY;
アニメーションでは setFrame を使用する必要があります。^{ <here> }
[view1 set enter code here Frame:rect1];