2012-04-12 61 views
2

在我的应用程序中,我有三个随机移动的uiimageview。在单击图像视图时,它应该隐藏。但是我的窍门不起作用。单击就不会隐藏。点击手势不工作UIimageview

- (void)showAlert1:(UITapGestureRecognizer *)sender 
{ 
    if (image1.tag == 1) 
    { 
     image1.hidden = TRUE; 
    } 
    else 
    { 
     image1.hidden = FALSE; 
    } 
} 

- (void)showAlert2:(UITapGestureRecognizer *)sender 
{ 
    if (image1.hidden == TRUE && image3.hidden == FALSE) 
    { 
     image2.hidden = TRUE; 
    } 
    else 
    { 
     image2.hidden = FALSE; 
    } 
} 

- (void)showAlert3:(UITapGestureRecognizer *)sender 
{ 
    if (image1.hidden == TRUE && image2.hidden == TRUE) 
    { 
     image3.hidden = TRUE; 
    } 
    else 
    { 
     image3.hidden = FALSE; 
    } 
} 

- (void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 
    if (image1.tag == 1) 
    { 
     image1.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(imageAlerts]; 
     tap.numberOfTapsRequired = 1; 
     [image1 addGestureRecognizer:tap]; 
    } 

    if (image2.tag == 2) 
    { 
     image2.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert2]; 
     tap.numberOfTapsRequired = 1; 
     [image2 addGestureRecognizer:tap]; 
    } 

    if (image3.tag == 3) 
    { 
     image3.userInteractionEnabled = YES; 

     UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert3]; 
     tap.numberOfTapsRequired = 1; 
     [image3 addGestureRecognizer:tap]; 
    } 
} 

任何人都可以帮我吗?

在此先感谢

回答

0

试试这个

- (void)showAlert1:(UITapGestureRecognizer *)sender 
{  
    if (sender.state == UIGestureRecognizerStateEnded)  
    {   
    // your handling code 
    if (image1.tag==1) 
     image1.hidden=TRUE; 
    else 
     image1.hidden=FALSE;  
    } 
} 
+0

- (void)showAlert1:(UITapGestureRecognizer *)发件人。这只是当我触摸图像时才被调用。 – Priya 2012-04-12 08:06:57

+0

这意味着viewWillAppear中存在一些问题。 正如我在iOSPawan回答说的,image.tag属性检查中必定存在一些问题。 – 2012-04-12 08:16:19

+0

使用条件检查是这样的 if(self.view == image1) – 2012-04-12 08:17:15

0

你实现UIGestureRecognizerDelegate并设置为自己?

+0

不,我没有实施它后 – Priya 2012-04-12 07:00:25

+0

也执行它不工作 – Priya 2012-04-12 07:08:17

+0

我想你是设置错误的轻击手势选择器。 – iOSPawan 2012-04-12 07:08:30

0

试试这个 -

- (void)viewWillAppearBOOL:animated 
{ 

[super viewWillAppear:animated]; 

if (image1.tag==1) 

{ 

image1.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert1:]; 

tap.numberOfTapsRequired = 1; 

[image1 addGestureRecognizer:tap]; 

} 

if (image2.tag==2) 

{ 

image2.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert2:]; 

tap.numberOfTapsRequired = 1; 

[image2 addGestureRecognizer:tap]; 

} 
if (image3.tag==3) 

{ 

image3.userInteractionEnabled = YES; 

UITapGestureRecognizer* tap = [[UITapGestureRecognizer alloc] initWithTargetelf actionselector(showAlert3:]; 

tap.numberOfTapsRequired = 1; 

[image3 addGestureRecognizer:tap]; 

} 
} 

而且它有内存泄漏。在添加到图像后,UIGesture不会被释放。

+0

我也做过同样的事情吗? – Priya 2012-04-12 07:13:46

+1

创建轻拍手势时,您正在设置选择imageAlerts,showAlert2,showAlert3它应该showAlert1:,showAlert2:showAlert3: – iOSPawan 2012-04-12 07:16:18

+1

另外我想没有必要检查image.tag在视图willAppear正确。因为所有图像都有单独的参考。 – iOSPawan 2012-04-12 07:18:14

22

请勾选userInteractionEnabled,并在厦门国际银行文件multipleTouch如果已经添加图像在厦门国际银行

image.userInteractionEnabled = YES; 
image.multipleTouchEnabled = YES; 
在viewDidLoad中

+0

不,它没有工作 – Priya 2012-04-12 08:07:21

+1

为我工作。谢谢。 – 2012-12-18 12:33:20

+1

繁荣完成。这为我做了诡计。 – 2013-10-25 13:38:11