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

时间:2017-11-23 08:18:20

标签: ios swift uiimageview swift4 uitapgesturerecognizer

我有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)

}

基本上我正在尝试实施费率功能。

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

1 个答案:

答案 0 :(得分:0)

您可以使用UIButton s。

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

  1. 拖出UIImageView。在右侧的属性检查器中,将其图像设置为star.png图像,然后选中启用用户交互
  2. 使用副本( command -C)制作四份副本并粘贴( command -V)。将它们连成一行,将它们全部选中并通过从菜单中选择编辑器 - >嵌入 - >堆栈视图将它们嵌入StackView。选择填充对齐,按比例填写进行分发。
  3. 为您的堆栈视图提供5:1宽高比约束。给它约束将它放在页面上并定义它的宽度。
  4. 每个图片都需要自己的 Tap Gesture Recognizer ,但它们都可以连接到同一个@IBAction例程。拖出点击手势识别器并将其放在每个图像上。在文档大纲视图控制 -drag中找到5 Tap手势识别器,从它们每个到@IBAction例程。
  5. 将标记15分配给您的星空图片。
  6. 如果@IBOutlet需要UIImageView,您可以将它们连接到相同的 Outlet Collection ,例如:

    @IBOutlet var starOutletCollection : [UIImageView]!
    

    然后你可以遍历它们来改变它们的图像,例如:

    // turn off all of the stars
    for star in starOutletCollection {
        star.image = UIImage(named: starOff.png)
    }