gpt4 book ai didi

ios - 快速多个 View 来点击数组中的手势

转载 作者:行者123 更新时间:2023-11-30 11:47:56 25 4
gpt4 key购买 nike

我有一个图像 slider ,其中多个图像添加到 ScrollView 中。每个都存储在我的自定义数据类型的数组中(名为 Slide)。我像这样循环浏览它们:

    for (index, slide) in slides.enumerated() {
let imageView = UIImageView()
imageView.image = UIImage(named: slide.image) //set the imageView with the imageName in this slide
imageView.contentMode = .scaleAspectFit
let xPos = self.view.frame.width * CGFloat(index) //calculate x depending upon slide index
imageView.frame = CGRect(x: xPos, y: -200, width: self.SVSlider.frame.width, height: self.SVSlider.frame.height)
SVSlider.contentSize.width = SVSlider.frame.width * CGFloat(index + 1) //add slide image to scrollview
SVSlider.addSubview(imageView)

//add tap function to slide
imageView.isUserInteractionEnabled = true
imageView.tag = index
let tapImage = UITapGestureRecognizer(target: self, action: #selector(slideAction(_:)))
imageView.addGestureRecognizer(tapImage)
}

每个幻灯片图像都附加到“slideAction”方法,如下:

@objc func slideAction(_ sender: UITapGestureRecognizer) {
let selName = slides[(sender.view?.tag)!].target
NSObject.perform(Selector(selName))
}

但是当我单击图像时应用程序会抛出错误。通过调试,我可以看到“标签”已正确设置为幻灯片索引号。我想执行幻灯片对象中保存的目标操作。 (当前目标是方法名称的字符串 - 以“:”结尾)。

如何获取“slideAction”以转到幻灯片对象中的方法?

最佳答案

试试这个,在自定义类中创建目标方法callMethodDirectly并调用它

@objc func slideAction(_ sender: UITapGestureRecognizer) {
let selName = slides[(sender.view?.tag)!]
selName.callMethodDirectly()
}

class slide:NSObjcet
{
func callMethodDirectly()
{
// implement target code here
}
}

关于ios - 快速多个 View 来点击数组中的手势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48628799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com