gpt4 book ai didi

ios - 使用 tapGesture 自定义 UIView

转载 作者:行者123 更新时间:2023-11-28 12:42:48 25 4
gpt4 key购买 nike

我有一个绘图应用程序。在我的 VC 中,有五个 imageViews,其中有五种颜色。我希望能够单击 imageView 并更改描边颜色。如果我通过向每个 UIImageView 添加手势识别器并具有各自的“选择器”功能来在 View Controller 中重复自己,则可以轻松完成。比如

func redTapped() {}
func blueTapped() {}

但是,我希望能够通过为这些 ImageView 创建自定义类 (ColorImageView.Swift) 来使代码更清晰,这样当我将类分配给这些按钮时,它们会自动获取点击手势,而我的 VC 会自动获取接收关于哪一个被窃听的信息。目前,我可以为分配给我的类(class)的每张图片打印一个“imagePressed”。但是,我无法区分按下的是哪一个。下面是我的 ColorImageView.Swift 代码

import Foundation

class ColorImageView: UIImageView {

private func initialize() {
let touchGesture = UITapGestureRecognizer(target: self, action: #selector(ColorImageView.imagePressed(_:)))
touchGesture.numberOfTapsRequired = 1
self.userInteractionEnabled = true
self.addGestureRecognizer(touchGesture)
}

override init(frame: CGRect) {
super.init(frame: frame)
initialize()
}

required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initialize()
}

func imagePressed(gestureRecognizer: UITapGestureRecognizer) {
print("image pressed \(gestureRecognizer)")
}
}

我的imageView名字是red.png, green.png, blue.png...等等

谢谢

editVC

最佳答案

您可以轻松获取标签。它工作正常。

func imagePressed(gestureRecognizer: UITapGestureRecognizer)
{
print("image pressed \(gestureRecognizer)")
let tappedImageVIew = gestureRecognizer.view as! UIImageView
print("image pressed \(tappedImageVIew.tag)")
}

关于ios - 使用 tapGesture 自定义 UIView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39018352/

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