我的 UITapGestureRecognizer 影响 TableViewCell 中的所有元素
Posted
技术标签:
【中文标题】我的 UITapGestureRecognizer 影响 TableViewCell 中的所有元素【英文标题】:My UITapGestureRecognizer affects all elements in TableViewCell 【发布时间】:2021-07-16 08:46:08 【问题描述】:我正在尝试做我的第一个应用程序,我需要添加 UITapGestureRecognizer 来缩放 TableViewCell 中的照片。
它有效,但不正确——我的手势不仅缩放 ViewCell 中的照片,还缩放 ViewCell 中的所有元素。我该如何解决这个问题?
我所有的 TableViewCell 代码:
import UIKit
class PhotosCollectionViewCell: UICollectionViewCell
static let identifier = "PhotosCollectionViewCell"
@IBOutlet weak var mainPhoto: UIImageView!
@IBOutlet weak var mainLabel: UILabel!
var isInScale: Bool = false
func configure(photo: PhotosInProfile)
mainPhoto.image = UIImage(named: photo.mainPhoto)
mainLabel.text = "Date: \(photo.date)"
override func awakeFromNib()
super.awakeFromNib()
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(imageDoubleTapped))
doubleTap.numberOfTapsRequired = 2
mainPhoto.isUserInteractionEnabled = true
mainPhoto.addGestureRecognizer(doubleTap)
@objc func imageDoubleTapped()
if isInScale
self.transform = .identity
else
self.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
isInScale.toggle()
【问题讨论】:
当您执行self.transform
时,self
是一个PhotosCollectionViewCell
实例。你指的是mainPhoto.transform
吗?
@Larme 哦,你是对的。我在这里将self
更改为mainPhoto
并且有效。谢谢!
【参考方案1】:
导入 UIKit
类 PhotosCollectionViewCell: UICollectionViewCell
static let identifier = "PhotosCollectionViewCell"
@IBOutlet weak var mainPhoto: UIImageView!
@IBOutlet weak var mainLabel: UILabel!
var isInScale: Bool = false
func configure(photo: PhotosInProfile)
mainPhoto.image = UIImage(named: photo.mainPhoto)
mainLabel.text = "Date: \(photo.date)"
override func awakeFromNib()
super.awakeFromNib()
let doubleTap = UITapGestureRecognizer(target: self, action: #selector(imageDoubleTapped))
doubleTap.numberOfTapsRequired = 2
mainPhoto.isUserInteractionEnabled = true
mainPhoto.addGestureRecognizer(doubleTap)
@objc func imageDoubleTapped()
if isInScale
mainPhoto.transform = .identity
else
mainPhoto.transform = CGAffineTransform(scaleX: 1.5, y: 1.5)
isInScale.toggle()
【讨论】:
以上是关于我的 UITapGestureRecognizer 影响 TableViewCell 中的所有元素的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 UITapGestureRecognizer 在我将它附加到我的 UITableViewCell 中的元素时不起作用?
UITapGestureRecognizer 不适用于 UIImageView 自定义类
在我点击我的 MPVolumeSlider 后,UIView 上的 UITapGestureRecognizer 被触发