我试图将一个额外的参数传递给buttonClicked操作,但无法确定Swift中的语法应该是什么.
button.addTarget(self, action: "buttonClicked:", forControlEvents: UIControlEvents.TouchUpInside)
Run Code Online (Sandbox Code Playgroud)
任何我的buttonClicked方法:
func buttonClicked(sender:UIButton)
{
println("hello")
}
Run Code Online (Sandbox Code Playgroud)
任何想法?
谢谢你的帮助.
我是以编程方式将UITapGestureRecognizer添加到我的一个视图中:
let gesture = UITapGestureRecognizer(target: self, action: #selector(self.handleTap(modelObj:myModelObj)))
self.imageView.addGestureRecognizer(gesture)
func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
Run Code Online (Sandbox Code Playgroud)
我遇到的第一个问题是"#selector'的参数'没有引用'@Objc'方法,属性或初始值设定项.
很酷,所以我将@objc添加到handleTap签名:
@objc func handleTap(modelObj: Model) {
// Doing stuff with model object here
}
Run Code Online (Sandbox Code Playgroud)
现在我收到错误"方法无法标记为@objc,因为参数的类型无法在Objective-C中表示.
它只是建筑物地图的图像,其中一些图像指示了兴趣点的位置.当用户点击这些引脚中的一个时,我想知道他们挖掘了哪个兴趣点,并且我有一个描述这些兴趣点的模型对象.我使用这个模型对象给它在地图上的坐标图像,所以我认为将对象发送到手势处理程序是很容易的.
我创建了动态UIimage视图,并UITapGestureRecognizer在视图中看起来像这样
UIImageView *image = [[UIImageView alloc ] initWithFrame:CGRectMake(x, 0, 200, 150)];
NSString *ImageURL = [str objectForKey:@"imageLink"];
NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:ImageURL]];
image.image = [UIImage imageWithData:imageData];
UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(tapDetected:)];
singleTap.numberOfTapsRequired = 1;
image.userInteractionEnabled = YES;
[image addGestureRecognizer:singleTap];
[documentory addSubview:image];
Run Code Online (Sandbox Code Playgroud)
和我这样的动作方法
-(void)tapDetected:(UIGestureRecognizer *)recognizer{
NSLog(@"single Tap on imageview");
}
Run Code Online (Sandbox Code Playgroud)
我想传递一个字符串参数到tapDetected方法谁能告诉我如何做到这一点非常感谢你