web-dev-qa-db-ja.com

setNeedsLayoutおよびsetNeedsDisplay

UIViewメソッドsetNeedsLayoutsetNeedsDisplayの本当の違いは何ですか?

いつものように、これについてはドキュメントがぼやけています。

63
SpaceDog

実際、ドキュメントはこれについてかなり明確です:

  • setNeedsLayout はサブビューをレイアウトします

    ビューのサブビューのレイアウトを調整する場合は、アプリケーションのメインスレッドでこのメソッドを呼び出します。

  • setNeedsDisplay は、ビューの再描画を要求します(drawRect:など)。

    このメソッドまたはsetNeedsDisplayInRect:を使用して、ビューのコンテンツを再描画する必要があることをシステムに通知できます。

91
Joris Kluivers