sha*_*bow 2 uiscrollview uigesturerecognizer swift
我正在尝试创建图像的滚动视图,并像应用商店屏幕截图一样可点击,当用户触摸一张图像时,会调用一些操作!但在这里我找不到这行不通的问题!请注意,我使用的所有 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)
}
}
Run Code Online (Sandbox Code Playgroud)
你可以看到我的手势识别器:
let tapGesture:UITapGestureRecognizer = {
let gr = UITapGestureRecognizer(target: self, action: #selector(tapBlurButton(_:)))
gr.numberOfTapsRequired = 1
return gr
}()
Run Code Online (Sandbox Code Playgroud)
我的回调函数就这么简单!但它不起作用:(
func tapBlurButton(_ sender: UITapGestureRecognizer) {
print("Please Help!")
}
Run Code Online (Sandbox Code Playgroud)
每个人都imageView需要自己的UITapGestureRecognizer。您不能只创建一个并多次使用它。
将创建的内容移至UITapGestureRecognizer循环中,它将起作用。
| 归档时间: |
|
| 查看次数: |
787 次 |
| 最近记录: |