フレームの原点をプログラムで設定しようとしています。
方法1:
button.frame.origin.y = 100;
方法 2:
CGRect frame = button.frame;
frame.origin.y = 100;
方法 1 を試しましたが、機能しません (式が割り当てられないというエラーが表示されます)。方法 2 が機能しています。これはなぜですか?
私が正しく行っていることについてのガイダンスが必要です。
button.frame.origin.y
あなたは値を返すことを知っ
ています。
これを使用していると、このエラーが発生します...
式は代入できません。
button.frame.origin.y = 100;
だからこれは正しい方法です
CGRect frame = button.frame;
frame.origin.y = 100;
それ以外の場合は、このようにすることができます...
button.frame = CGRectMake(button.frame.origin.x, 100, button.frame.size.width, button.frame.size.height)
これは、フレームの原点またはサイズを直接変更できた場合、UIView のフレーム プロパティのセッター メソッドをバイパスするためです。これは、複数の理由で好ましくありません。
UIView は、フレームの変更について通知を受ける機会がありません。ただし、サブビューを更新したり、それ自体を再描画したりできるようにするには、これらの変更について知る必要があります。