如何自定义UITableViewCell以不同方式显示信息(对于假人,包括绘图)?

时间:2011-03-25 00:58:20

标签: xcode uitableview interface-builder

好吧,我可能会让这个令人困惑,但希望不会。我有一个UITableView,我想在3中进行细分:详细信息(A),其他详细信息(B)和分配(C)。

详细信息部分中,我想以与联系人应用程序相同的方式显示信息,但我不知道如何配置UITableViewCell以显示该方式

其他详细信息部分中,我想显示一个正常的部分,所以实际上我已经覆盖了它。

Assignment 部分,我希望有一个组合,其中两个单元格是正常的,并且将链接到其他控制器,一个单元格只是一个普通按钮。我需要为纽扣电池做些什么特别的事情吗?

现在我有各种按钮,表格单元格和标签,所以它看起来有点不好,因此我想清理它并使界面保持一致。

这是我想要做的事情的图画:

enter image description here

另一方面,在我点击一个单元格后,它滑到下一个控制器,然后我回去,单元格仍然被选中。如何在链接到的动作执行后取消选择?

提前感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

你需要的只是一个带有分组样式的UITableView,然后在tableView:cellForRowAtIndexPath:方法中你应该检查你要返回的单元格的部分(即[indexPath section])并返回一个基于它的单元格,因为所有的单元格在同一部分内应该是基本相同的类型和风格。不确定按钮,但实际上你应该只对tableView中的那些单元格有自定义行为:didSelectRowAtIndexPath:方法。这完全是为了正确实施合适的代表。

答案 1 :(得分:0)

在cellForRowAtIndexPath中应该是这样的:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
  ...
  ...
     if(indexPath.section == kAssignmentSection){

          if(indexPath.row == kAssignRow || indexPath.row == kTransferRow){

               cell.accesoryType = UITableViewCellAccessoryDisclosureIndicator;//Or Button
          }

     } 

}

现在你应该检查

-(void)tableView:(UITableView *)tableView accessoryButtonTappedForRowWithIndexPath:(NSIndexPath *)indexPath{
   if(indexPath.section == kAssignmentSection){

      if(indexPath.row == kAssignRow){

          //Do your thing for AssingRow or any other index you know that needs to be processed
      }

   } 
}

答案 2 :(得分:0)

在我通过深入研究文档发布问题后的几个小时,我确实想到了这一点,最后我继续研究我的应用程序并忽略了这个问题。无论如何,实际上很容易改变细胞的外观。一切都是细胞风格。

细胞样式决定细胞的外观; 默认在我的绘图中看起来像 B Value2 在我的绘图中看起来像 A

右侧的箭头是附件类型,或者在这种情况下,它是 DisclosureIndicator

我想这是在询问之前首先阅读文档的完美示例。所以这是我正在阅读的文档: