子视图不会低于其他视图Swift

时间:2018-07-10 07:16:31

标签: swift view popup subview

我有一些类似于弹出窗口的视图,当它们出现时,黑色视图应该出现在它们下面。我在许多其他弹出窗口中使用了此功能,但是在这种特定情况下不起作用。我不知道为什么会这样。同样,这可能与按钮和消息视图都嵌入在恭维视图中有关。会影响我的结果吗?

    @IBOutlet weak var sideMenuConstraint: NSLayoutConstraint!
@IBOutlet weak var menu: UIView!
@IBOutlet weak var inboxCollection: UICollectionView!
@IBOutlet weak var complimentView: UIView!
@IBOutlet weak var messageView: UIView!
@IBOutlet weak var inboxBackground: UIImageView!
@IBOutlet weak var message: UILabel!
@IBOutlet weak var name: UILabel!
@IBOutlet weak var time: UILabel!
@IBOutlet weak var likeButton: UIButton!
@IBOutlet weak var reportButton: UIButton!

@objc func complimentOutsideClicked() {
    navigationController?.setNavigationBarHidden(false, animated: false)
    self.complimentView.isHidden = true
    UIView.animate(withDuration: 0.1, animations: {
        self.view.layoutIfNeeded()
    })

    UIView.animate(withDuration: 0.05, animations: {self.blackview2.alpha = 0})
}

let blackview2 = UIView()

@objc func tap(sender: UITapGestureRecognizer){
    if let indexPath = self.inboxCollection?.indexPathForItem(at: sender.location(in: self.inboxCollection)) {
        //let cell = self.inboxCollection?.cellForItem(at: indexPath)
        print("\(compliments[indexPath.row])")

        navigationController?.setNavigationBarHidden(false, animated: false)

        self.name.text = "\(compliments[indexPath.row].sender.first_name) \(compliments[indexPath.row].sender.last_name)"

        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z"
        dateFormatter.timeZone = TimeZone.current
        let localDate = UTCToLocal(date: compliments[indexPath.row].created_at)
        let date = dateFormatter.date(from: localDate)
        let newDate = getPastTime(for: date!)

        self.time.text = "\(newDate)"

        self.message.text = "\(compliments[indexPath.row].content)"

        if compliments[indexPath.row].is_liked == false {
            self.likeButton.isEnabled = true
            self.likeButton.setImage(UIImage(named: "likeButton"), for: .normal)
            self.reportButton.setImage(UIImage(named: "reportButton"), for: .normal)
            self.inboxBackground.image = UIImage(named: "inboxBackground")
        } else {
            self.likeButton.isEnabled = false
            self.likeButton.setImage(UIImage(named: "likeButtonLiked"), for: .normal)
            self.reportButton.setImage(UIImage(named: "reportButtonLiked"), for: .normal)
            self.inboxBackground.image = UIImage(named: "inboxBackgroundLiked")
        }
        self.complimentView.isHidden = false
        self.view.layoutIfNeeded()

        if let window = UIApplication.shared.keyWindow {
            blackview2.backgroundColor = UIColor(white: 0, alpha: 0.3)
            window.addSubview(blackview2)
            blackview2.frame = window.frame
            blackview2.alpha = 0
            blackview2.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(complimentOutsideClicked)))
            UIView.animate(withDuration: 0.1, animations: {self.blackview2.alpha = 1})
        }

        view.insertSubview(blackview2, belowSubview: messageView)
        self.view.layoutIfNeeded()
     view.insertSubview(blackview2, belowSubview: likeButton)
        view.insertSubview(blackview2, belowSubview: reportButton)
    } else {
        print("collection view was tapped")
    }

}

0 个答案:

没有答案
相关问题