Thayne Thayne - 9 days ago 7
iOS Question

iOS: determine when all children have had layoutSubviews called

it appears that

viewDidLayoutSubviews
is called immediately after
layoutSubviews
is called on a view, before
layoutSubviews
is called on the subviews of that view. Is there any way of knowing when
layoutSubviews
has been called on a view and all of its children that also needed their layouts updated?

Answer

You shouldn't have to know if the subviews of a subview have updated their layout: That sounds like too tight coupling. Also, each subview might handle the arrangement of their respective subviews differently and might not (need to) call layoutSubviews for its subviews at all. You should only ever have to know about your direct subviews. You should treat them more or less as black boxes and not care whether they have subviews of their own or not.