Fix: ScrollStackControllerDelegate
methods calls
#29
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adresses an issue that causes calls to the
ScrollStackControllerDelegate
methodsscrollStackRowDidBecomeVisible(_:row:index:state:)
scrollStackRowDidBecomeHidden(_:row:index:state:)
before the completion of the
ScrollStack
layout process, when each rows still don't have a valid frame.This can happen for example when a ViewController uses a
ScrollStack
as a subview and inserts rows in a for-loop inside itsviewDidLoad()
method.Now these methods are called:
ScrollStack
has been fully laid outA fix has been also made to the
dispatchRowsVisibilityChangesTo(_:)
ScrollStack
method: it now takes into account new inserted rows which still don't have a previous visibility state.Finally, the call to
askForCutomizedSizeOfContentView(animated:)
ofScrollStackRow
has been moved back in theupdateConstraints()
method following the best practices described in ModifyingConstraints:This is necessary because we call
setNeedsUpdateConstraints()
in thelayoutUI()
method ofScrollStackRow
.