如何确定视图中当前触摸了哪个UIImageView
? UIImageViews
是动态创建的,并且基于标签。我还将使用带有对象和数组索引的标记作为参考。我已经读到我需要在这种情况下使用UIButton
,但是UIButton
的问题是我无法将其拖到自己的范围之外。
我需要知道如何通过标签获取特定的动态创建的按钮,以便可以检测要在UIImageView
中移动哪个TouchesMoved
。
这是从我的对象创建UIImageViews
的代码:
for (ObjectClass *obj in [self myDelegate].theObj)
{
CGRect rect = CGRectMake(obj._sX + (obj._sW / 2),obj._sY + (obj._sH / 2),10,10);
handlerImg = [[UIImageView alloc] initWithFrame:rect];
handlerImg.backgroundColor = [UIColor yellowColor];
[[self view] addSubview:handlerImg];
handlerImg.tag = z;
[handlerImg setUserInteractionEnabled:YES];
z++;
}
然后是我的touchesMoved事件代码:
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
if (drag == YES)
{
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInView:self.view];
ObjectClass *obj = [[self myDelegate].theObj objectAtIndex:currHandler]; //Get object based on selected UIImageView
if ([touch view] == handlerImg) //Identify which UIImageView is selected
{
someImage.center=location;
最佳答案
这样尝试
if ([[touch view] isKindOfClass:[UIImageView class]]) //Identify which UIImageView is selected
{
someImage.center=location;
//[touch view].tag here you'l get tag value.
}
(要么)
使用手势,将手势委托添加到.h文件中,并将其放在ein for循环中。
UITapGestureRecognizer *tapRecognizer;
tapRecognizer=[[UITapGestureRecognizer alloc]
initWithTarget:self
action:@selector(handleTap:)];
tapRecognizer.numberOfTapsRequired=1;
tapRecognizer.numberOfTouchesRequired=1;
[imageview addGestureRecognizer:tapRecognizer];
tapRecognizer.delegate = self;
[tapRecognizer release];
并把这个
- (void)handleTap:(UITapGestureRecognizer *)recognizer {
NSLog(@"KidsViewController ==> handleTap.");
switch (((UIGestureRecognizer *)recognizer).view.tag)
{
//do whatever you want here
}
}