Why is viewDidLayoutSubviews called multiple times?
LoadView
is only called once: when the view needs to be loaded.
LayoutSubviews
, however, is called once per run loop on any view that has had setNeedsLayout
or setNeedsDisplayInRect
called on it - this includes whenever a subview has been added to the view, scrolling, resizing, etc.
The best thing to do and this has served me well - is to get in to the habit of adding a log or print statement to methods of which you are unsure
I use this ->
print("Hello From \(NSStringFromSelector(#function))")
or this if inside a View Subclass
Swift.print("Hello From \(NSStringFromSelector(#function))")
It will print the method when it is being called.