A customizable designable button view. Inside layer you can style button, create your own subviews
ButtonClickStyle
- This is a customizable designable button view.
- Inside the layer you can style your button, create your own subviews.
- Can choose 1 of 9 button click animation styles.
- You can expand the project adding new click-animation-styles.
Requirements
- macOS 10.12+
- Xcode 13+
- Swift 5.5+
Installation
CocoaPods
ContainerControllerSwift is available through CocoaPods. To install it, simply add the following line to your Podfile:
pod 'ButtonClickStyle'
Usage
С storyboard или xib
-
Create a “view” that inherits from
ButtonClickStyleView
-
Inside this layer, create your own button
-
In Attributes Inspector of Interface Builder you can immediately select the button click style
animationType
extension ButtonClick {
enum Style {
case alpha
case flash
case shadow
case shadowColor
case color
case colorFlat
case pulsateNew
case pulsate
case press
case shake
case shakeNew
case androidClickable
case androidClickableDark
}
}
-
Also you can select specific layers to animate / or just 1 specific one
allSubviews
-
Add animation duration
animationDuration
-
Add animation value
animationTypeValue
– meaning means
- “Hide .Alpha/Flash/Shadow/Color” – will change alpha from 0.0 to 1.0
- “Move .Pulsate/Press/Shake” – will increase movement decrease from 0.0 to 1.0
- “Add .AndroidClickable” – will increase bubble radius
@IBInspectable var allSubviews: Bool = true
@IBInspectable var animationType: Int = 0
@IBInspectable var animationValue: CGFloat = 0.0
@IBInspectable var animationDuration: CGFloat = 0.0
var addViews: [UIView]?
-
If initializing programmatically There is a property
addViews
– allows you to pass views / layers which you definitely want to use in the click animation only -
Or initialize through a struct
ButtonClick.State
extension ButtonClick {
struct State: Equatable {
var titleText: String?
var allSubviews: Bool = true
var animationType: Int?
var animationTypeValue: CGFloat?
var animationDuration: CGFloat?
var new: Bool = false
var color: UIColor?
var startClick: Bool = false
var addBackgrondColor: Bool = true
}
}
@IBOutlet var mainView: UIView!
var views: [UIView]? = [mainView]
let frame: CGRect = .init(x: 23 , y: 22, width: 156, height: 48)
let viewAn = ButtonClickStyleView(
state: state,
frame: frame,
radius: 20,
addViews: views
)
btnView.insertSubview(mainView, at: 0)
btnView.updateSubviews()
License
ButtonClickStyle is released under the MIT license.