我有一组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()
}
}
答案 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
就可以了。