AndreasVerhoeven/UIKitAnimations
Provide a few helpers for animating common UIKit operations, such as setting text
UIView
view.performTransition()does a cross fade of the view from one state to anotherview.performTransitionIfNeeded()same, but only if theanimatedparameter is trueUIView.performAnimationsIfNeeded()only animates the changes if theanimatedparameter is true
view.shake()shakes the view, usually to indicate an errorview.shakeWithHapticErrorFeedback()same, but with haptic error feedback
Example:
view.performTransition {
// update some complex view here, changes will crossfade
}
view.performTransitionIfNeeded(animated: true) {
// update some complex view here, changes will crossfade
}
// indicates an error by shaking a textfield
inputTextField.shakeWithHapticErrorFeedback {
inputTextField.becomeFirstResponder()
}
UIImageView
setImage(_:animated:)sets a new image with a crossfade transition, if animated is truesetImage(_:tintColor:animated)same, but with a tint color parameter
Example:
imageView.setImage(UIImage(systemNamed: "gearshape"), tintColor: .red, animated: true)UILabel & UITextView
setText(_: animated:)sets new text with a crossfade transition, if animated is truesetAttributedText(_:animated:)same, but for attributed textsetText(_:textColor:animated:)same, but text & colorsetTextColor(_:animated:)same, but only text color
Example:
label.setText("New text", animated: true)
textView.setAttributedText(newAttributedText, animated: true)UIWindow
switchRootViewController()changes the root view controller, with a cross fade animation if wanted
Example:
window.setRootViewController(newViewController, animated: true)DisplayLink
DisplayLink is a small wrapper around CADisplayLink that uses a block callback and stops the display link whenever it gets deallocated.
Example:
var displayLink = DisplayLink.started {
print("frame")
}
DispatchQueue.main.asyncAfter(.now() + 1) {
displayLink = nil
}Package Metadata
Repository: AndreasVerhoeven/UIKitAnimations
Stars: 2
Forks: 0
Open issues: 0
Default branch: main
Primary language: swift
License: MIT
README: README.md