Custom Alert (UIAlertView) with swift

前端 未结 5 1771
轻奢々
轻奢々 2020-11-28 09:16

How can i create a custom alert with Swift? I try translating a guide from Objective c but loads a full screen layout

for do it easy i can load a new layout with the

5条回答
  •  庸人自扰
    2020-11-28 09:50

    Custom Alert UIView Class in swift 4. And Usage ##

    import UIKit
    
    
        class Dialouge: UIView {
        @IBOutlet weak var lblTitle: UILabel!
        @IBOutlet weak var lblDescription: UILabel!
        @IBOutlet weak var btnLeft: UIButton!
        @IBOutlet weak var btnRight: UIButton!
        @IBOutlet weak var viewBg: UIButton!
    
        var leftAction  = {}
        var rightAction  = {}
    
    
        override func draw(_ rect: CGRect)
        {
    
            self.btnRight.layer.cornerRadius = self.btnRight.frame.height/2
            self.btnLeft.layer.cornerRadius = self.btnLeft.frame.height/2
            self.btnLeft.layer.borderWidth = 1.0
            self.btnLeft.layer.borderColor = #colorLiteral(red: 0.267678082, green: 0.2990377247, blue: 0.7881471515, alpha: 1)
        }
        @IBAction func leftAction(_ sender: Any) {
    
            leftAction()
        }
    
        @IBAction func rightAction(_ sender: Any) {
            rightAction()
        }
        @IBAction func bgTapped(_ sender: Any) {
            self.removeFromSuperview()
        }
        }
    

    strong text
    ## Usage Of Custom Alert with Tabbar.

        let custView = Bundle.main.loadNibNamed("Dialouge", owner: self, options: 
         nil)![0] as? Dialouge
            custView?.lblDescription.text = "Are you sure you want to delete post?"
            custView?.lblTitle.text = "Delete Post"
            custView?.btnLeft.setTitle("Yes", for: .normal)
            custView?.btnRight.setTitle("No", for: .normal)
            custView?.leftAction = {
                self.deletePost(postId: self.curr_post.id,completion: {
                    custView?.removeFromSuperview()
                })
            }
            custView?.rightAction = {
                custView?.removeFromSuperview()
            }
            if let tbc = self.parentt?.tabBarController {
                custView?.frame = tbc.view.frame
                DispatchQueue.main.async {
                    tbc.view.addSubview(custView!)
                }
            }else if let tbc = self.parView?.parenttprof {
                custView?.frame = tbc.view.frame
                DispatchQueue.main.async {
                    tbc.view.addSubview(custView!)
                }
            }
            else
            {
                custView?.frame = self.parView?.view.frame ?? CGRect.zero
                DispatchQueue.main.async {
                    self.parView?.view.addSubview(custView!)
                }
                }
    

提交回复
热议问题