Я хотел бы просмотреть всплывающее окно с одной меткой в нем, которая медленно исчезает в течение одной секунды, чтобы сообщить пользователю о выборе, который он сделал, произошел обновление или что-то еще.Исчезновение всплывающего окна предупреждения
Я использую animatewithduration, но поскольку у них может быть много разных предупреждений, я бы хотел создать класс, чтобы избежать создания вида, метки и func в любом UIViewController, который может отображать этот вид предупреждения ... Вид:
let doneAlert = PopUpAlert(parentView : self, textAlert : "You're done")
где parentView в представлении, где я хочу textAlert, который будет отображаться, а затем, при необходимости:
doneAlert.display()
Вот класс, я написал:
class PopUpAlert: UIView {
convenience init(parentView : UIView,textAlert : String) {
self.init(frame: CGRect(x: 0, y: 0, width: 200, height: 150))
self.alpha = 0
self.center = parentView.center
let popUpLabel = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 150))
popUpLabel.center = self.center
popUpLabel.text = textAlert
self.addSubview(popUpLabel)
parentView.addSubview(self)
}
func display() {
PopUpAlert.animateWithDuration(0.5, delay: 0.0, options: UIViewAnimationOptions.CurveEaseOut, animations: {
self.alpha = 1.0
}, completion: nil)
PopUpAlert.animateWithDuration(1.0, delay: 0.5, options: UIViewAnimationOptions.CurveEaseIn, animations: {
self.alpha = 0.0
}, completion: nil)
}
}
И вот так я использую его: не отображается
class CarteVC: UIViewController {
var daddy : RootViewController?
var goAlert : PopUpAlert?
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
goAlert = PopUpAlert(parentView: mapView, textAlert: "On the way ....")
}
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
let bb = UIBarButtonItem(title: "< List", style: .Plain, target: papa!, action: "pred")
bb.tintColor = UIColor.lightGrayColor()
daddy!.navigationItem.leftBarButtonItem = bb
daddy!.navigationItem.rightBarButtonItem = nil
goAlert!.display()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - Navigation
Ничто.
Нашел это ..... Это вопрос только позиционирования .... больше нет popUpLabel.center ... и он появляется !!!! – Hal