无法在UITableViewCell上获取文本

时间:2011-02-24 10:05:06

标签: iphone cocoa-touch uitableview

我想在UITableView的单元格上获得多个自定义文本。单击单元格上的动态添加按钮后,我想要这些文本。我无法使用 didRowSelectedAtIndex 方法。我有自己的选择器,我正在执行,但我不知道如何在每个单元格上获取文本。有人可以帮帮我吗?

感谢

3 个答案:

答案 0 :(得分:2)

您可以在单元格视图中添加UILabel。就像你使用自定义按钮一样。

您可以提前向所有单元格添加UILabel。如果单元格上的UIButton被cklicked,则必须在某处保存该状态信息(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";
    }
}

如果你不喜欢海关细胞。您可以将标签应用于标签,将标签添加到单元格,然后通过该标签查询它,从单元格中获取标签。

答案 1 :(得分:0)

  1. 将您的标签设为全局变量
  2. 将yur单元格创建为默认样式单元格。
  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];
    }
    
  6.     - (IBAction) click
        {
            customLabel1.text = @"YAYA";
            customLabel2.text = @"GAGA";
        }
    

答案 2 :(得分:0)

您可以尝试通过扩展UIButton并添加属性来创建自定义按钮类,以包含对NSString对象(或存储字符串的原始数组的索引等)的引用。

然后点击按钮,您可以将发件人转换为自定义按钮类型,只需检索属性值。