2013-06-18 119 views
0

在ios6中, [UITableView dequeueReusableCellWithIdentifier:forIndexPath:]總是返回一個單元格。 那麼,如果我想在我的單元格中添加一些按鈕處理程序,並且避免每次重用單元格時添加目標。使用[tableView dequeueReusableCellWithIdentifier:forIndexPath:]將單元格中的按鈕添加到按鈕中。

現在,我使用的標籤記憶在細胞已經被掛鉤:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"MyCell"; 
    MyCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
    if(!cell.tag){ 
     cell.tag = 1; 
     [cell.playButton addTarget:self action:@selector(playInputClicked:) forControlEvents:UIControlEventTouchUpInside]; 
    } 
    return cell; 
} 

任何更好的解決方案(不使用的registerClass或registerNib)。

任何建議表示讚賞,

雨果

回答

0

只需重新添加。該按鈕自動消除重複的目標/動作對。如果你這樣做:

for (int i = 0; i < 100; ++i) { 
    [cell.playButton addTarget:self action:@selector(playInputClicked:) forControlEvents:UIControlEventTouchUpInside]; 
} 

......你會發現,你只能收到playInputClicked:每分頭一次,而不是100次。

+0

抱歉超長時間延遲(僅2y ...)。不知道我怎麼錯過通知...... thx! –

相關問題