如何在stackview中获取imageview的标记

时间:2017-11-23 07:24:59

标签: ios swift uiimageview ios11 uitapgesturerecognizer

我有一个水平的uistackview,我有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)

更简单的方法可能是创建一个IBOutletCollection,例如:

 //1. Create An Array Of Your ImageViews
 @IBOutlet var ratingStarImageViews: [UIImageView]!

然后为他们分配标签和手势,例如:

 //2. Assign Tags To The Them

    var tag = 0

    for view in ratingStarImageViews{

        let ratingGesture = UITapGestureRecognizer(target: self, action:  #selector(starRatingAction(_:)))
        view.addGestureRecognizer(ratingGesture)
        view.tag = tag
        tag += 1
    }

希望它有所帮助。