サイズを変更したい場合は、次のUIView
ようにする必要があります。
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
代わりに:
view.frame.size.height -= 100;
私の質問は、この背後にあるロジックは何ですか? frame
多分 call のような何か特別なことをするためのセッターsetNeedsDisplay
ですか?
サイズを変更したい場合は、次のUIView
ようにする必要があります。
CGRect frame = view.frame;
frame.size.height -= 100;
view.frame = frame;
代わりに:
view.frame.size.height -= 100;
私の質問は、この背後にあるロジックは何ですか? frame
多分 call のような何か特別なことをするためのセッターsetNeedsDisplay
ですか?
基本的にその背後にある理由は、次の行です
view.frame.size.height -= 100;
実際には次の2つのことを行います:
[view frame]
を返すメソッドを呼び出します -ビューに保存されているもののコピーCGRect
height
、コピーのフィールドを変更します-ビューに格納されている構造の値には影響しませんsetNeedsDisplay を呼び出すなど、フレームのセッターは特別なことをしていますか?
実際にはそうです - ビューのframe
プロパティはその起点、境界、および変換に基づいて計算されるため、フレームを設定するとその起点と境界にも影響します (ビューの contentMode によっては、ビューが強制的に再描画される場合があります)。