2016-09-29 6 views
2

** Ich habe meine eigene Ansicht mit Text und Bildern gestaltet.Ios Swift: Popup Benutzerdefinierte Ansicht als Alarmbox

Ich möchte diese als Alarmansicht präsentieren oder anzuzeigen nur als Fenster

Wie verwende ich .modalPresentationStyle als .custom und acheive diese

Sollte ich Viewcontroller verwenden oder Anzeigen nur Blick direkt

@IBAction func BtnClickFnc(sender: AnyObject) 
{ 
    let MsgBoxVar = MsgBoxCls() 
    MsgBoxVar.modalPresentationStyle = .Custom 
    MsgBoxVar.preferredContentSize = CGSizeMake(200, 400) 
    self.presentViewController(MsgBoxVar, animated: true, completion: nil) 

}

class MsgBoxCls: UIViewController 
{ 
    override func viewDidLoad() 
    { 
     view.addSubview(NamVyuCls(frame: CGRectMake(50,50,200,200))) 
    } 
} 


class NamVyuCls: UIView 
{ 
    override public init(frame: CGRect) 
    { 
     super.init(frame: frame) 

     layer.borderWidth = 2 
     layer.borderColor = UIColor.darkGrayColor().CGColor 
     layer.cornerRadius = 10 

     // Code Todo 
    } 

    required init?(coder aDecoder: NSCoder) { 
     fatalError("init(coder:) has not been implemented") 
    } 
} 

Antwort

4
var BgdVyuVar: UIView! 
var NamVyuVar: NamVyuCls! 

@IBAction func BtnKlkFnc(sender: AnyObject) 
{ 
    BgdVyuVar = UIView(frame: view.frame) 
    BgdVyuVar.backgroundColor = UIColor(red: 255/255, green: 255/255, blue: 225/255, alpha: 0.5) 
    BgdVyuVar.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(self.DsmVyuFnc))) 
    self.view.addSubview(BgdVyuVar) 

    NamVyuVar = NamVyuCls() 
    NamVyuVar.frame = CGRectMake(self.view.frame.width/2 - 100,self.view.frame.height/2 - 100,200,200) 
    self.view.addSubview(NamVyuVar) 

    UIView.animateWithDuration(0.5, delay: 0.1, options: .TransitionNone, 
     animations: 
     { 
      self.view.bringSubviewToFront(self.NamVyuVar) 
     }, 
     completion: nil) 
} 

func DsmVyuFnc() 
{ 
    BgdVyuVar.removeFromSuperview() 
    NamVyuVar.removeFromSuperview() 
} 
+0

Ur Idee funktioniert teilweise Ich will, dass es in der Mitte kommt, und grau um die Region außerhalb und deaktivieren Sie alle anderen Dinge wie Popover. Auch shud beenden, wenn ich außerhalb der AlertView klicke. –

+0

Um den Hintergrund auszugrauen und zu deaktivieren, erstellen Sie eine UIView. Setzen Sie die Hintergrundfarbe auf blackColor und setzen Sie die alpha-Eigenschaft auf 0,7 und setzen Sie den Rahmen auf den Rahmen Ihrer Hauptansicht. Wenn Sie die alertView anzeigen, fügen Sie diese UIView als Unteransicht zu Ihrer Hauptansicht hinzu. Wenn Sie beim Klicken auf die Schaltfläche "Exit" beenden möchten, fügen Sie der neu erstellten BackGround-Unschärfeansicht einen UITapGestureRecognizer hinzu. Auf Knopfdruck, entfernen Sie die Alarmansicht –

+0

Ja danke, es hat funktioniert –

Verwandte Themen