【问题标题】:How to get cell index path by cell text label in iOS on outside button clicked如何在单击外部按钮时通过 iOS 中的单元格文本标签获取单元格索引路径
【发布时间】:2013-09-02 17:23:08
【问题描述】:

我在屏幕上有一个 UITableView,单元格中有一些数据(文本标签)。 在 UITableView 之外的屏幕上也有一个按钮。 我需要访问 UITableView 的特定单元格/cell.IndexPath 以 通过在按钮单击时查找单元格文本来更改特定的单元格文本颜色。 请帮忙..

【问题讨论】:

    标签: iphone ios uitableview


    【解决方案1】:

    这是一种选择单元格的方法:

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
    

    现在,如果您想根据文本标签的内容更改单元格:

    if ([cell.textLabel.text isEqualToString:@"Red"]) {
        cell.textLabel.textColor = [UIColor redColor];
    }
    

    【讨论】:

    • 您好,可以通过此方法找到单元格,但表格无法反映或重新加载新颜色。使用“[self.tableView reloadData];”或“[self.tableView reloadRowsAtIndexPaths:array withRowAnimation:UITableViewRowAnimationNone];”
    • 需要注意两点:1) 如果表格尚未初始化,则单元格将为 nil;2) 当您调用 [self.tableView reloadData] 时,它会调用 cellForRowAtIndexPath 来绘制表格。确保您没有覆盖您刚刚所做的更改。
    【解决方案2】:

    您可以使用 cellForRowAtIndexPath 方法来获取对应的单元格。请参阅下面的示例以更改列表单元格的文本颜色。

    示例:

       UITableViewCell *cell=[self.tblView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
        UILabel *label=cell.textLabel;
        label.textColor=[UIColor redColor];
    

    【讨论】:

    • 我不想从 cellForRowAtIndexPath 访问单元格,因为我需要通过传递单元格文本标签名称来更改外部按钮单击上的单元格颜色,然后通过文本标签找到 cellIndexPath 并执行特定任务在细胞上
    • 表格视图中有静态单元格还是动态原型?哪个类是表视图的数据源?您将每个单元格的文本信息存储在哪里?在 NSArray 中? otside 按钮在每个单元格上?哪个单元格的按钮要怎么改变颜色?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多