2011-02-24 37 views
0

我想在UITableView的單元格上獲取多個自定義文本。點擊單元格上的動態添加按鈕後,我需要這些文本。我不能使用didRowSelectedAtIndex方法。我有我自己的選擇器,但我不知道如何在每個單元格上獲取文本。任何人都可以幫助我?無法在UITableViewCell上獲取文本

謝謝

+0

您可能需要添加一些代碼,以便人們瞭解可能出現的問題。 – koregan 2011-02-24 10:10:16

+0

代碼會太長,並在不同的地方片..我試圖通過單詞解釋它 – 2011-02-24 10:36:58

回答

0
  1. 讓您的標籤爲全局變量
  2. 尤爾創建默認風格細胞的細胞。
  3. 將標籤添加到沒有文本的單元格的contentView中。
  4. 添加您的按鈕。
  5. 在點擊將標籤設置爲標籤後,按鈕調用的方法。

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; 
    
    customLabel1 = [[UILabel alloc] initWithFrame:CGRectMake(5, 5, 50, 20)]; 
    customLabel2 = [[UILabel alloc] initWithFrame:CGRectMake(55, 5, 50, 20)]; 
    [cell.contentView addSubview:customLabel1]; 
    [cell.contentView addSubview:customLabel2]; 
    } 
    

- (IBAction) click 
    { 
     customLabel1.text = @"YAYA"; 
     customLabel2.text = @"GAGA"; 
    } 
2

您添加一個UILabel到單元格的視圖。就像你用你的自定義按鈕做的一樣。

您可以預先向所有單元添加UILabel。如果一個單元格上的UIButton被點擊了,你必須在某處保存這個狀態信息(NSArray)。當談到渲染單元,你問的數組,如果當前索引處的細胞應該表現出一些文字,如果是這樣設置它...

如果你想即時渲染調用[self.tableView reloadData]

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath { 
    if (array at index indicates clicked) { 
     myCustomCell.label1 = @"foo"; 
    } else { 
     myCustomCell.label1 = @"bar"; 
    } 
} 

如果你不喜歡海關單位。您可以將標籤應用於標籤,將標籤添加到單元格中,然後通過該標籤查詢單元格獲取。

+0

是的我有三個UILabels添加在單元格的contentView。但是單元格會在運行時動態添加。所以不能提前將所有標籤放入NSArray中。我實際上想知道點擊添加按鈕的單元格,以便可以在該單元格上獲取文本。 – 2011-02-24 10:25:44

+0

1.您不會將標籤保存在數組中,而是保存信息(如果單元格已被點擊)。 2.在渲染單元格時,請考慮該信息以設置標籤的文字。 – 2011-02-24 10:46:22

0

也許你可以嘗試通過延長的UIButton創建一個自定義按鈕,添加屬性包含對NSString對象的引用(或索引原數組,其中字符串被存儲等)。

然後在按鈕上單擊,您可以將發件人強制轉換爲您的自定義按鈕類型,並簡單地檢索屬性值。