UIImageView 识别器

Posted

技术标签:

【中文标题】UIImageView 识别器【英文标题】:UIImageView Recognizer 【发布时间】:2014-12-01 14:37:57 【问题描述】:

在我的应用程序中,我有一个大 UIImageView 和其他 5 个较小的。

我的意图是将所选小图像的内容复制到最大的图像。还可以获取所选图像的名称并使用 UILabel 显示。

用 UIButtons 替换小图像并将图像显示为背景会更容易吗?

【问题讨论】:

一种选择是使用图像视图标签属性。您还可以将一些额外的细节存储到一个数组中,并使用标签属性(0、1 等)作为它的键。干杯! 【参考方案1】:

我会为每个 imageView 添加一个gestureRecognizer。然后,gestureRecognizer 调用的函数将更改“大选择器视图”上的图像。没有内置方法可以获取用户选择的图像名称。如果你真的需要这个,那么你可以子类化 UIImageView 并添加一个 fileName 属性。

@IBOutlet var imageView: UIImageView!
@IBOutlet var bigPickerImageView: UIImageView!

override func viewDidLoad() 
    super.viewDidLoad()

    // create tap gesture recognizer
    let tapGesture = UITapGestureRecognizer(target: self, action: "tapGesture:")

    // add it to the image view;
    imageView.addGestureRecognizer(tapGesture)
    // make sure imageView can be interacted with by user
    imageView.userInteractionEnabled = true        


func tapGesture(gesture: UIGestureRecognizer) 
    // if the tapped view is a UIImageView then set it to imageview
    if let imageView = gesture.view as? UIImageView   // if you subclass UIImageView, then change "UIImageView" to your subclass
        // change the image on the bigPickerImageView
        bigPickerImageView.image = imageView.image
        // if you subclass UIImageView, then you could get the filename here.
    

【讨论】:

以上是关于UIImageView 识别器的主要内容,如果未能解决你的问题,请参考以下文章

UIImageView 不显示来自 UITableViewController 的设置图像

更改 UIImageView 大小以匹配图像与 AutoLayout

在 UIScrollView 内的 UIImageView 上启用 GestureRegnizer

如何防止 UIImageView 使用 Autolayout 调整大小

UIImageView 在我设置图像时移动或调整大小

自定义 UITableViewCell 中的 UIImageView - 始终调整为图像大小