如何识别视图对象而不指定其标记属性

时间:2014-03-11 07:12:04

标签: ios objective-c

我通过storyboard将textview放在原型单元格中并分配textview的标签。

在植入方法中 -(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:

我想为textview指定另一个标识符,以便我可以通过此标识符获取textview。我之所以不使用TAG属性,是因为我的表视图中的所有单元格都有相同的原型可供重用。

-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
    ETPost *post = postList[indexPath.row];
    UITextView *textView = (UITextView*)[cell viewWithTag:TEXT_TAG];//TEXT_TAG 1000
    textView.text =post.content;
    return cell;
}

如上所示,我使用viewWithTag,我的tableview中的所有单元格都有相同的标记,所以我需要另一个解决方案,而不是将indexPath分配给TAG。

2 个答案:

答案 0 :(得分:1)

好吧,答案可能比你想象的要简单。但只是UITableViewCell的子类,并确保您的表视图使用您的新子类(您在IB和StoryBoards中的原型单元Custom Class中设置它)。子类添加的唯一内容是允许您识别它的属性。

@property short specialIdentifier;

这是关于UITableViewCells的更一般的链接,我通常在需要完成任务时参考:cusomizing uitableviewcells

答案 1 :(得分:0)

<{>>在-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:中,您可以将indexPath的行号分配给textView的标记,如:

cell.textView.tag = indexPath.row;

因此,假设您将所有单元格放在一个区域中,此标记将与您的单元格的indexPath不同。