[英]UITableViewCell subview does not receive touch
我的可重用單元格包含一個視圖及其所有信息( UIImageView
, UILabel
等),其框架為0,0,320,63
,名為mainView
我還以編程方式添加了另一個子視圖,該子視圖的框架-160,0,160,63
名為leftView
,包含在mainView
。
我向該單元格添加了一個UISwipeGestureRecognizer,因此,當您滑動時,我將mainView的幀更改為160,0,320,63
。 它運作完美。
我只是有一個問題,在leftView
,我有一些UIImageView
其中userInteractionEnabled
設置為YES
,上面有一個手勢識別器。 但是此手勢識別器永遠不會觸發,它仍會調用-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
方法。
我看着這個答案 ,但這對我沒有幫助。
有人可以幫我嗎?
謝謝 !!
編輯:這是我的手勢識別器實例化
// Selector is valid, I checked it out. _viewController too.
UIImageView * imageView = [[UIImageView alloc] initWithFrame:frame];
[imageView setImage:someImage];
[imageView setUserInteractionEnabled:YES];
[_leftView addSubview:imageView];
UITapGestureRecognizer * gr = [[UITapGestureRecognizer alloc] initWithTarget:_viewController action:selector];
[imageView addGestureRecognizer:gr];
沒有看到peerRecognizer的初始化,可能是很多問題。 但是,有兩件事需要研究:
1.)您是否設置了cancelsTouchesInView
標志? 通常,這會弄亂您的tableView接觸,但是您應該對其進行調查。
2.)您是否驗證了情節提要中的子視圖布局? imageView是否有部分遮擋?
-另外,您實際上已分配了正確的手勢識別器?
您是否嘗試過將表格單元格可選設置為否? 在這種情況下,您的滑動手勢仍然可以使用,但是用於單元格選擇的表格確定方法不應該使用。
我自己弄清楚了。
問題是因為leftView
框架不在mainView
框架(x中為-160)之外。
為了解決我的問題,我在情節mainView
中更改了mainView
,因此它也從-160開始。 而不是在x的-160處添加leftView
,而是在0處添加。
不管怎么說,還是要謝謝你 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.