When and how is
layoutIfNeeded used? I know that when we change the layout of a view, we can call
setNeedsLayout to update the layout but not sure when
layoutIfNeeded should be used.
NOTE: I have
layoutIfNeeded used in actual code but forgot in what context it was used.
Select Multiple Images (UIImagePickerController or Photos.app Share UI)
Read and update a Dictionary type PSMultiValueSpecifier from NSUserDefault
layoutIfNeededforces the receiver to layout its subviews immediately if required..
passing object from iphone app to library in object C
Suppose you have overridden
layoutSubviews, and UIKit feels that your view requires layout for whatever reason (e.g.
Stretching An Image in Tableview
setNeedsLayoutwhen handling some user action).
Then, your custom
layoutSubviewsmethod will be called immediately instead of when it would normally be called in the regular UIKit run loop event sequence (after event handling, but before
An example of why you might need to call
layoutIfNeededwithin a single run loop:.
Cocoa-touch - implementation files?
- You resize a custom view containing a table view with a custom layout.
setNeedsLayoutis set so that
layoutSubviewswill be called later.
- A controller object asks the table view to scroll to some particular cell when handling a user event.
- Your custom view performs some custom sizing of the table view in
layoutSubviewsthat changes the table view size.
The updated bounds would only be set on the table view later (step 3).
What the controller wanted the table view to scroll to may not actually be visible after
A solution then would be for the controller to call
layoutIfNeededin situations where it knows this might occur..
In this way setNeedsLayout is a convenience method for calling layoutIfNeeded which does the heavy lifting..