2011-02-24 40 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对象的引用(或索引原数组,其中字符串被存储等)。

然后在按钮上单击,您可以将发件人强制转换为您的自定义按钮类型,并简单地检索属性值。