次の場合に示すように、呼び出しsetNeedsDisplay
た後に明示的に呼び出す必要がありますか?setFrame
UIView
view1.frame = frame;
[view1 setNeedsDisplay];
[view2 setFrame:frame];
短い答え:いいえ
メソッドを呼び出すsetNeedsDisplay
必要があるときに呼び出します.-drawRect
UIView Class Reference
フレーム四角形を変更すると、drawRect: メソッドを呼び出さずにレシーバーが自動的に再表示されます。フレームの四角形が変更されたときに drawRect: メソッドを呼び出す場合は、contentMode プロパティを UIViewContentModeRedraw に設定します。
答えは Yes と No の両方で、状況によって異なりますが、
ケース1。カスタム ビュー、つまり UIView のサブクラスで drawRect メソッドをオーバーライドして何かを描画している場合は、setNeedsDisplay を呼び出す必要があります。そうしないと、その描画またはパターンが新しいフレームに従って引き伸ばされ、見栄えが悪くなります。再描画する場合は、setNeedsDisplay を呼び出します。
ケース 2。せっかく描いた絵が伸びても綺麗に見えるものなら、稀にあると思いますが、
または、drawRect をまったくオーバーライドしない場合は、setNeedsDisplay を呼び出す必要はありません。