簡體   English   中英

UITableViewCell子視圖不接收觸摸

[英]UITableViewCell subview does not receive touch

我的可重用單元格包含一個視圖及其所有信息( UIImageViewUILabel等),其框架為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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM