UIView のフレーム サイズをリセットしたいので、次のように書きました。
view.frame.size.width = x;
しかし、それはうまくいきません、誰かが理由を教えてもらえますか?
UIView のフレーム サイズをリセットしたいので、次のように書きました。
view.frame.size.width = x;
しかし、それはうまくいきません、誰かが理由を教えてもらえますか?
幅を直接設定することはできません。これを行ってください
CGRect frm = view.frame;
frm.size.width = x;
view.frame = frm;
呼び出すview.frame
と、frame rectプロパティのコピーが取得されるため、これを設定するとframe.size.width
、ビューのフレームサイズではなく、コピーの幅が変更されます。
ここに理由の 1 つのパスがあります。あなたのコードはに変換されます
[view frame] // <- This hands you a CGRect struct, which is not an object.
// At this point, view is out of the game.
.size // <- On the struct you were handed
.width // "
= x; // <- the struct you were handed changed, but view was untouched
もう 1 つの考え方は、アクセスできない目に見えない変数がそこにあるということです。
CGRect _ = [view frame]; // hands you a struct
_.size.width = x;