如何将多个imageview分组以具有1个轻触手势识别器?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将多个imageview分组以具有1个轻触手势识别器?相关的知识,希望对你有一定的参考价值。

我有5个图像视图。我需要获取被点击的图像视图的ID。我尝试添加点击手势标识符并获取发件人的ID,但我没有得到它。

我到现在为止尝试的内容如下

@IBOutlet weak var userRateViewStar1ImageOutlet         : UIImageView!

@IBOutlet weak var userRateViewStar2ImageOutlet         : UIImageView!

@IBOutlet weak var userRateViewStar3ImageOutlet         : UIImageView!

@IBOutlet weak var userRateViewStar4ImageOutlet         : UIImageView!

@IBOutlet weak var userRateViewStar5ImageOutlet         : UIImageView!

@IBOutlet weak var userRateViewTextAreaOutlet           : UITextView!

@IBOutlet var starOutletCollectionOutlet                : [UIImageView]!


 @IBAction func starRatingAction(_ sender: UITapGestureRecognizer)
{
    var tag = sender.view!.tag

    print(tag)

}

基本上我正在尝试实现速率功能。

那么有人可以建议我实现这个方法吗?

答案

你可以使用UIButtons。

如果您想使用UIImageViews,请按以下步骤操作:

  1. 拖出一个UIImageView。在右侧的“属性”检查器中,将其图像设置为star.png图像并选中“启用用户交互”。
  2. 使用copy(command-C)和paste(command-V)制作四份副本。将它们连成一行,选择它们并将它们嵌入到StackView中,方法是从菜单中选择Editor-> Embed In-> Stack View。选择“填充对齐”并按比例填充以进行分配。
  3. 为堆栈视图提供5:1的宽高比约束。给它约束将它放在页面上并定义它的宽度。
  4. 每个图像都需要自己的Tap Gesture Recognizer,但它们都可以连接到相同的@IBAction例程。拖出Tap Gesture Recognizers并将其放在每个图像上。在文档大纲视图中找到5个手势识别器,然后从每个手势拖动到你的@IBAction例程。
  5. 通过1将标签5分配给您的星形图像。
  6. 如果您需要@IBOutlets到您的UIImageViews,您可以将它们连接到相同的Outlet Collection,例如: @IBOutlet var starOutletCollection : [UIImageView]! 然后你可以遍历它们来改变它们的图像,例如: // turn off all of the stars for star in starOutletCollection { star.image = UIImage(named: starOff.png) }

以上是关于如何将多个imageview分组以具有1个轻触手势识别器?的主要内容,如果未能解决你的问题,请参考以下文章

Ionic2 UI组件之 ImageViewer

3D 触控力度手势可在触控端激活单元格轻触

UIScrollView 并检测其子视图的手势

支持手势缩放的ImageView

如何将平面 DataFrame 对象转换为具有多个列级别且也按特定维度分组的 DataFrame 对象?

iOS:UIImageView 不响应动画之间的点击手势