Provide a few helpers for animating common UIKit operations, such as setting text
This library provides a few helper functions for easily animating common UIKit operations, such as setting text and images.
view.performTransition()
does a cross fade of the view from one state to another
view.performTransitionIfNeeded()
same, but only if the animated
parameter is true
UIView.performAnimationsIfNeeded()
only animates the changes if the animated
parameter is true
view.shake()
shakes the view, usually to indicate an error
view.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()
}
setImage(_:animated:)
sets a new image with a crossfade transition, if animated is truesetImage(_:tintColor:animated)
same, but with a tint color parameterExample:
imageView.setImage(UIImage(systemNamed: "gearshape"), tintColor: .red, animated: true)
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 colorExample:
label.setText("New text", animated: true)
textView.setAttributedText(newAttributedText, animated: true)
switchRootViewController()
changes the root view controller, with a cross fade animation if wantedExample:
window.setRootViewController(newViewController, animated: true)
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
}
link |
Stars: 2 |
Last commit: 28 weeks ago |
Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics