动态设置可重用 tableViewCell 的标识符
Posted
技术标签:
【中文标题】动态设置可重用 tableViewCell 的标识符【英文标题】:Set identifiers for reusable tableViewCell dynamically 【发布时间】:2018-02-12 11:18:19 【问题描述】:tableViewCell 包含两个标签,标签的内容在每次迭代中都会更新。对于 UI 测试,我需要设置标签的标识符以检查标签的内容是否与预期的相同。 如何为可重用单元格内的标签动态设置标识符?
@interface MyDetailsTableViewCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIDLabel *myDetailsTitlelabel;
@property (weak, nonatomic) IBOutlet UIDLabel *myDetailsContentLabel;
@end
这是我的 tableViewCell 中的两个标签。
【问题讨论】:
尝试将标签与标签和单元格相关联 展示你的设计,你想用表格列表实现。 尝试使用accessibilityIdentifier
这样的属性 label.accessibilityIdentifier = "label1"
但是我可以使用这个属性为每次迭代动态更改标识符吗?
【参考方案1】:
我假设您的 tableView 已全部设置并正常工作。
在 cellForRowAt
函数中,您可以为每一行动态设置 ID。
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "<your_reuse_identifier>", for: indexPath) as! MyDetailsTableViewCell
cell.myDetailsTitlelabel.text = "id" // set your label text here
cell.myDetailsTitlelabel.accessibilityIdentifier = "id" // set your dynamic id here
cell.myDetailsContentLabel.text = "id" // set your label text here
cell.myDetailsContentLabel.accessibilityIdentifier = "id" // set your dynamic id here
return cell
【讨论】:
以上是关于动态设置可重用 tableViewCell 的标识符的主要内容,如果未能解决你的问题,请参考以下文章
如何使用动态重用标识符设置和出列自定义 UITableViewCell?