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()
}
}
}
}
複製程式碼