swift - 子视图不低于其他视图 Swift
问题描述
我有一些类似于弹出窗口的视图,当它们出现时,它们下方应该出现一个黑色视图。我在许多其他弹出窗口中使用它,但是在这种特定情况下它不起作用。我不知道为什么会这样。此外,它可能与按钮和消息视图都嵌入在赞美视图中有关。这会影响我的结果吗?
@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")
}
}
解决方案
推荐阅读
- javascript - 即使我在购物车数组中传递对象,req.session.cart 总是给出未定义的
- python - 如何使用 [] 和 {} 猴子补丁列表和字典创建?
- mysql - 如何编写具有两个左连接和两个计数的 MySql 查询
- php - 获取不带时间戳的数组数据
- sql - 在第一个 where 子句上过滤数据集,然后在第二个 where 子句上过滤剩余的数据集
- python - 我想使用熊猫绘制我的数据框的第一行
- php - 我正在使用 manjaro 并且无法使用 php artisan 迁移它显示找不到 sql 驱动程序
- css - 添加图片时有空格
- typescript - Where is the return type of typeof defined?
- manim - 如何在 Manim 中创建分段函数图?