2011-10-16 58 views
0

我有兩個標籤,每個標籤有兩個獨立標籤。如何檢測在自定義UITableviewcell上按下了哪個UILabel?

我想通過檢查標籤來檢測哪個標籤被按下。

裏面的

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {} 

我可以通過這樣的代碼檢索他們中的一個:

cell = [walltable cellForRowAtIndexPath:indexPath]; 
topLabel= (UILabel *)[cell.contentView.subviews objectAtIndex:0]; 

,但我不知道被按下的一個。

有沒有辦法實現找到用戶按下哪個標籤?

回答

0

重要的東西我想指出的:你的參考標籤:

topLabel= (UILabel *)[cell.contentView.subviews objectAtIndex:0]; 

是不是這樣做的正確的,通用的方式。我建議將單元格中的元素添加到IBOutlet中,並從那裏獲取參考。 至於你提到的UILabel觸摸事件的問題,我認爲實現這一目標的好方法是將UITapGestureRecognizer添加到您的標籤,就像這樣:

UITapGestureRecognizer *tgr = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(firstLabelTapped)]; 
[firstLabel addGestureRecognizer:tgr]; 
[tgr release]; 

做同樣的第二個標籤。如果您想要將信息傳遞迴TableView的視圖控制器,請使用委派進行此操作。祝你好運!

0

一種方法,如上文所說,是一個變量分配給每個標籤,然後評估您的回調調用的UILabel的標籤。

,如果您使用的是定製細胞(即子類的UITableViewCell,相對於標準的UITableViewCell到您添加自定義內容/佈局)另一種方法是每個兩個標籤簡單地定義爲性能您的子類別單元格。如果標籤分配爲各自的屬性,則可以針對調用者評估這些屬性並確定哪個標籤被按下。

相關問題