2017-04-20 124 views
1
敲击手势识别分配给图像的滚动视图内

我试图创建的图像和可点击苹果商店一样的屏幕截图, 当用户触摸上一个图像的一些行动电话的滚动视图!但在这里我无法找到这个问题,这是行不通的! 请注意,我使用的所有UI都是由代码完成的!在斯威夫特

func initScreenshots(){ 
    if screenShotsView.subviews.count > 0{ 
     screenShotsView.subviews.forEach({ $0.removeFromSuperview() }) 
    } 

    imageArray.append(UIImage.init(named: "1.jpeg")!) 
    imageArray.append(UIImage.init(named: "2.jpeg")!) 

    for image in imageArray { 
     let index = imageArray.index(of: image) 
     let imageView:UIImageView = { 
      let iv = UIImageView() 
      iv.image = image 
      iv.translatesAutoresizingMaskIntoConstraints = false 
      iv.contentMode = .scaleAspectFit 
      return iv 
     }() 
     imageView.isUserInteractionEnabled = true 
     imageView.addGestureRecognizer(tapGesture) 
     screenShotsView.addSubview(imageView) 
     imageView.topAnchor.constraint(equalTo: screenShotsView.topAnchor, constant: 10).isActive = true 
     imageView.bottomAnchor.constraint(equalTo: screenShotsView.bottomAnchor, constant: 10).isActive = true 
     imageView.heightAnchor.constraint(equalToConstant: 350).isActive = true 
     imageView.widthAnchor.constraint(equalToConstant: 190).isActive = true 
     if index == 0 { 
      imageView.leftAnchor.constraint(equalTo: screenShotsView.leftAnchor, constant: 10).isActive = true     
     }else if(index == imageArray.count - 1){ 
      imageView.rightAnchor.constraint(equalTo: screenShotsView.rightAnchor, constant: 10).isActive = true 
      imageView.leftAnchor.constraint(equalTo: ((screenShotsView.subviews[index! - 1]).rightAnchor), constant: 10).isActive = true 
     }else{ 
      imageView.leftAnchor.constraint(equalTo: ((screenShotsView.subviews[index! - 1]).rightAnchor), constant: 10).isActive = true 
     } 
     imageView.isUserInteractionEnabled = true 
     imageView.addGestureRecognizer(tapGesture) 
    } 

} 

而且你可以看到我的手势识别:

let tapGesture:UITapGestureRecognizer = { 
    let gr = UITapGestureRecognizer(target: self, action: #selector(tapBlurButton(_:))) 
    gr.numberOfTapsRequired = 1 
    return gr 
}() 

我的回调函数是简单的这样!但它不工作:(

func tapBlurButton(_ sender: UITapGestureRecognizer) { 
    print("Please Help!") 
} 
+0

您是否尝试过使用按钮并设置按钮的背景图像与你想要的? –

+0

@OrenEdrich不,但我有另一个按钮,在我看来,我已经添加了这个手势识别器,但仍然不工作:( – shaibow

+1

你不需要添加一个手势识别器到一个按钮将它连接到你的.swift文件。或者让一个if(你的按钮).isSelected = true {你的代码} –

回答

2

imageView需要自己UITapGestureRecognizer。你不能只是建立一个和多次使用它。

移动UITapGestureRecognizer的创建到您的循环,它将工作