我有一个按钮。每次用户点击它时,应用程序都会实例化 UIImageView (imageview),为其标记分配一个唯一的编号。
- (IBAction)buttonClicked:(id)sender {
imageview = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 300, 240)];
NSUInteger currentag = [self UniqueNum]; // Assigning a unique number to the tag variable
[self.view addSubview:imageview];
imageview.backgroundColor = [UIColor blueColor];
imageview.userInteractionEnabled = YES;
imageview.tag = currentag;
}
我的目标是获取用户触摸的UIImageView副本的标记号。使用以下代码,我实际得到的是应用程序上次创建的UIImageView副本的标记号。如何改进它以便应用程序指向被触摸对象的标签号?
- (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
UITouch *touch = [[event allTouches] anyObject];
if([touch view] == imageview) {
NSLog(@"Tag: %i",imageview.tag);
}
}
感谢您的帮助。
答案 0 :(得分:1)
如果你需要互动,我建议在这里使用带有自定义图像的UIButtons而不是UIImageViews。
添加按钮时添加此项:
[imageview addTarget:self action:@selector(someMethod:) forControlEvents:UIControlEventAllTouchEvents];
然后将sender
(您的声明)中的someMethod
转换为UIView以获取其标记。
-(void) someMethod:(id)sender
您也可以选择添加一个事件参数,但这里似乎不需要。