Github完整版Demo 包括点击任意地方立即移除等
效果
简单几行代码大家自己看吧。代码
class JSAlertLabel: UILabel {
let screenWidth = UIScreen.main.bounds.width
let screenHeight = UIScreen.main.bounds.height
override init(frame: CGRect) {
super.init(frame: frame)
setup()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
private func setup() {
backgroundColor = UIColor.black
alpha = 0
layer.cornerRadius = 2.5
numberOfLines = 1
textAlignment = .center
}
/** 出现动画0.2秒 消失动画0.3秒 呈现在屏幕上的时间=delay。最大长度屏幕宽度/2 高度20
*/
public func show(text: String, onView view: UIView, removeAfter delay: Double) {
attributedText = NSAttributedString(string: text, attributes: [NSAttributedStringKey.foregroundColor : UIColor.white, NSAttributedStringKey.font: UIFont.systemFont(ofSize: 15)])
view.addSubview(self)
UIView.animate(withDuration: 0.2, delay: 0, options: [], animations: {
self.alpha = 0.6
}) { (_) in
UIView.animate(withDuration: 0.3, delay: delay, options: [], animations: {
self.alpha = 0
}) { (_) in
self.removeFromSuperview()
}
}
}
}