如何在ios中的一组自定义按钮中检测哪个自定义按钮被点击

时间:2015-07-17 21:29:59

标签: ios swift uigesturerecognizer

我有一组6个自定义按钮,我使用启用了用户交互的图像实现了这些按钮。我还为每个开关添加了一个标签。我为每个按钮添加了一个轻敲手势识别器。我使用了描述的技术 detect view was tapped 当我按下任何按钮时,我总是得到手势附加到的最后一个按钮。这是代码。帮助将不胜感激。

import UIKit
class HomeViewController: UIViewController {
@IBOutlet var buttonImages: [UIImageView]!

var selectedOption = 0

@IBAction func tapped(sender: UITapGestureRecognizer) {
    let buttonImage = sender.view!
    println("Tag: \(buttonImage.tag) image: \(buttonImage)")
    selectedOption = (sender.view?.tag)!
    println("tapped: \(selectedOption)")
}
override func viewDidLoad() {
    super.viewDidLoad()


    let tapGestureRecognizer = UITapGestureRecognizer(target: self,
        action: "tapped:")
    tapGestureRecognizer.numberOfTouchesRequired = 1
    tapGestureRecognizer.numberOfTapsRequired = 1
    let x = UIImage(named:"TV normal.png") // replace with array

    var tag = 0
    for buttonImage in buttonImages {
        buttonImage.addGestureRecognizer(tapGestureRecognizer)
        buttonImage.image = x
        buttonImage.tag = tag
        tag++
    }
    // check
    for buttonImage in buttonImages {
        println("Tag: \(buttonImage.tag) image: \(buttonImage)")
    }
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
}

}

1 个答案:

答案 0 :(得分:1)

您的问题是由于您为每个<div class="mobile" style="text-align:center"> <h2>Lawn Square Footage</h2> <input id="a" onkeypress="return isNumberKey(event)" style="height: 250px; margin-top: 10px; width: 75%; text-align: center; font-size: 100px;" type="text" data-in="" /> <h2>Water Usage</h2> <h2 id="b">___</h2> <h2>Gallons per day</h2> <h2>Your lawn takes <span id="g">___</span> hour showers</h2> </div>附加相同的UITapGestureRecognizer,但同时只能将一个手势附加到一个UIImage,这就是您的原因总是回到最后一个。

在您的情况下,您只需要为使用相同目标/操作创建的每个UIView创建一个新UITapGestureRecognizer。这样,您的方法UIImage就可以了。