【发布时间】:2017-05-22 16:37:15
【问题描述】:
@IBAction func popView(_ sender: UIButton) {
let popView = PopView()
popView.setVisible()
popView.animateView(view: popView.contentView)
}
popView 是一个视图控制器,里面有一些视图,popView 在它的 init() 中使用 setup() 来设置这些视图。
func setup(){
view.frame = UIScreen.main.bounds
baseView.frame = view.frame
baseView.backgroundColor = UIColor.black
//baseView.alpha = appearence.backgroundAlpha
view.addSubview(baseView)
contentView.backgroundColor = UIColor.white
contentView.layer.cornerRadius = appearence.cornerRadius
contentView.frame = CGRect(x: 10, y: 10, width: appearence.width, height: appearence.height)
contentView.layer.masksToBounds = true
contentView.center = CGPoint(x: self.view.bounds.midX , y: self.view.bounds.midY )
baseView.addSubview(contentView)
headView.frame = CGRect(x: 0, y: 0, width: contentView.bounds.width, height: contentView.bounds.height / 2)
headView.backgroundColor = UIColorFromRGB(0xE64D4D)
contentView.addSubview(headView)
headImageView.image = UIImage(named: headImage)
headImageView.contentMode = .center
headImageView.frame.size = headImageView.image!.size
headImageView.center = CGPoint(x: headView.bounds.midX, y: headView.bounds.midY)
headView.addSubview(headImageView)
let recognizer = UITapGestureRecognizer(target: self, action: #selector(self.hide(_: )))
recognizer.numberOfTapsRequired = 1
contentView.addGestureRecognizer(recognizer)
print(String(describing: contentView.gestureRecognizers))
}
contentView 有一个 Tapgesturerecognizer,但是当我点击它时它不起作用
func hide(_ recognizer: UITapGestureRecognizer){
self.view.removeFromSuperview()
}
popView 由 ViewController 类中的以下代码创建
@IBAction func popView(_ sender: UIButton) {
let popView = PopView()
popView.setVisible()
popView.animateView(view: popView.contentView)
}
func setVisible(){
let rootView = UIApplication.shared.keyWindow! as UIWindow
rootView.addSubview(self.view)
}
func animateView(view: UIView){
view.center = CGPoint(x: self.view.bounds.midX, y: self.view.bounds.minY - view.bounds.midY)
UIView.animate(withDuration: 0.2, animations: {
view.center = CGPoint(x: self.view.bounds.midX , y: self.view.bounds.midY + 50)
}, completion: {(finished) -> Void in
UIView.animate(withDuration: 0.1, animations: {
view.center = CGPoint(x: self.view.bounds.midX , y: self.view.bounds.midY )
})
})
}
popView 显示正确,但 contentView 不响应点击手势。为什么??请帮帮我~
【问题讨论】:
标签: ios swift view uitapgesturerecognizer