2016-10-01 21 views
0

這裏是代碼:UITapGesture認識水龍頭唯一過境明智的UIImageView

此節是**-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath**

UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(imageDispalyFullScreenTapped:)]; 
       singleTap.numberOfTapsRequired = 1; 
       singleTap.delegate=self; 
       cell.imgDisplay.userInteractionEnabled = YES; 
       [cell.imgDisplay addGestureRecognizer:singleTap]; 

下所寫的,我已經實現了委託,即**UIGestureRecognizerDelegate**

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch 
{ 
    return YES; 
} 
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 
{ 
    return YES; 
} 

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer{ 
    return YES; 
} 

現在在UIImageView獲取時使用選擇器

-(void)imageDispalyFullScreenTapped:(UITapGestureRecognizer*)gesture 
{ 
    UIView *tappedView = gesture.view; 
    UITableViewCell *cell=[self getSuperViewOfType:[UITableViewCell class] FromView:tappedView]; 
    NSIndexPath *indexPath=[tblChat indexPathForCell:cell]; 
    Sock_ModelChat *objChat=[arrDisplay objectAtIndex:indexPath.row]; 
    if ([objChat.strUrlLocal stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].length>0) { 
     imgSelectedDisplay=[[Sock_DB sharedInstance] getImageForName:objChat.strUrlLocal]; 

     ImageDisplayerViewController *imageDisplayer=[ImageDisplayerViewController sharedInstance]; 
     imageDisplayer.delegate=self; 
     [self addChildViewController:imageDisplayer]; 
     imageDisplayer.view.frame=CGRectMake(0, 0, CGRectGetWidth([UIScreen mainScreen].bounds), CGRectGetHeight([UIScreen mainScreen].bounds)); 
     [self.view addSubview:imageDisplayer.view]; 
     [imageDisplayer didMoveToParentViewController:self]; 
    } 
} 

但問題是每當在圖像視圖的邊界側或邊緣側攻絲,得到檢測到圖像視圖中的抽頭,並在中心或靠近中心攻絲當選擇imageDispalyFullScreenTapped fired.But,抽頭是沒有被檢測到,所以相關的選擇器也沒有被觸發。

我正在使用XCode版本8.0(8A218a)和iOS 10.0。

回答

0

可能是用戶交互在您的情況下禁用

那麼你可以添加手勢,如:

let gesture:UITapGestureRecognizer = UITapGestureRecognizer.init(target:self, action:#selector(handleTap)) 
gesture.numberOfTapsRequired = 1 
gesture.delegate = self 
cell.imageView?.addGestureRecognizer(gesture) 

然後在您的視圖控制器下面添加功能

func handleTap(sender: UITapGestureRecognizer? = nil) {}