2014-12-29 79 views
1

UIBUttonUICollectionViewCell爲顯示圖像。我已經設置了touchUpInside xib中的操作。我設置了按鈕的背景圖像是粉紅色的,標籤爲黃色。 UIButton出現在標籤的頂部。現在問題是UIButton在粉紅色區域沒有觸摸事件,它只在橙色區域獲得觸摸事件。爲什麼如此。的UIButton沒有得到觸摸即使在全區域

- (IBAction)checkButtonTap:(id)sender event:(id)event 
{ 
    DLog(@"%s",__func__); 
} 

enter image description here


ö隱藏視圖重疊按鈕由於它是觸摸事件未達到到按鈕。

回答

1

爲了確保我理解您的問題,您的粉色爲UICollectionView,粉色爲UIbutton,對不對?

如果是這樣,它似乎要攔截你的按鈕的上海華外touchUpInside事件爲黃色。你可以看看this answer哪種類型的問題。

即使你最終找到解決您的問題,澄清我的答案,如果你想與UIButton這不是它的父的框架內進行交互,則可能需要需要實現上海華盈的方法- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event(這裏的UICollectionViewCell):

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 
{ 
if (!self.clipsToBounds && !self.hidden && self.alpha > 0) { 
    for (UIView *subview in self.subviews.reverseObjectEnumerator) { 
     CGPoint subPoint = [subview convertPoint:point fromView:self]; 
     UIView *result = [subview hitTest:subPoint withEvent:event]; 
     if (result != nil) { 
      return result; 
     } 
    } 
} 

return nil; 
} 

(感謝諾姆)

+0

的是的UILabel黃色不UICollectionView –

0

UITapGestureRecognizer * tapGesture = [[UITapGestureRecognizer頁頭] initWithTarget:自我行動:@選擇(imageTapped :)]!; [buttonname addGestureRecognizer:tapGesture]; buttonname.userInteractionEnabled = YES;

  • (IBAction爲)imageTapped:(UITapGestureRecognizer *)gestureRecognizer { 如果(gestureRecognizer.state == UIGestureRecognizerStateRecognized){ [BUTTONNAME becomeFirstResponder]; } }
+0

爲什麼我應該上的按鈕添加敲擊手勢? –

0

ö很抱歉,隱藏認爲是重疊由於該觸摸事件未達到給該按鈕的按鈕。