Save and restore view state for UIButton #323
Merged
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.
Fix #309
Short description π
As @greatsk55 said, there is a problem when a button is skeletonizing. It seems the skeleton layer appears below the title label of the button.
Solution π¦
Before the skeleton appears, all views save their current view state to recover when the skeleton disappears. But some UI elements must override these methods because they require special behavior.
To solve this problem, we need to override the
saveViewState
andrecoveryViewState
methods forUIButton
.Also, when the skeleton is shown, we set the title value to
nil
and when the skeleton is hidden we retrieve the original title.Implementation π©βπ»π¨βπ»
RecoverableButtonViewState
.UIButton
extension to override the methods.prepareViewForSkeleton
method forUIButton
, where we set the value of the title.