使用故事板的UITableviewcontroller中的静态和动态单元格

使用故事板的UITableviewcontroller中的静态和动态单元格,uitableview,ios7,uistoryboard,Uitableview,Ios7,Uistoryboard,我想要这样的表视图 我所了解的是,他们使用的是静态单元格,而不是显示呼叫详细信息的位置。如何制作如上所述的tableview(动态单元格位于静态单元格之间)。我经历了很多类似的事情,,但未能找到解决方案。任何教程或建议都将不胜感激。我仍在努力实现这一目标。我将建议几种方法: 1. 更简单的方法是为应用程序中可能存在的静态和动态表格视图单元格的每个可能组合创建不同的UITableViewController。这意味着当没有显示用户的通话记录时,上述联系人应用程序将有一个UITableViewCon

我想要这样的表视图


我所了解的是,他们使用的是静态单元格,而不是显示呼叫详细信息的位置。如何制作如上所述的tableview(动态单元格位于静态单元格之间)。我经历了很多类似的事情,,但未能找到解决方案。任何教程或建议都将不胜感激。我仍在努力实现这一目标。

我将建议几种方法:

1. 更简单的方法是为应用程序中可能存在的静态和动态表格视图单元格的每个可能组合创建不同的
UITableViewController
。这意味着当没有显示用户的通话记录时,上述联系人应用程序将有一个
UITableViewController
,当已经有通话记录时,将有另一个。这种方法有缺点:a)如果您在具有调用日志的表视图控制器中,并且日志已被清除,则切换到无日志控制器可能会比较困难;b) 如果您使用的是故事板,那么在许多视图控制器上复制粘贴原型单元也会很困难。我相信还有更多,但是对于一些功能简单的屏幕(那些不是表单的屏幕),用这种方式构建它的简单性超过了缺点

2. 将您的屏幕视为一个静态
UITableView
,其中包含动态调整大小的
UIView
s。例如,上面的联系人应用程序将是一个具有4行的表视图:照片和通话记录、家庭号码、Facetime和便笺。照片和通话记录位于单个自定义
UITableViewCell
中的单个自定义
UIView
中。如果没有显示用户的通话记录,则自定义
ui视图
仅显示面部照片,但如果有,它还会显示通话记录


简言之,
numberofrowsin节:
是常量--
UITableViewCell
s中的
UIView
s不是常量。如果一行动态出现或消失,请将其与上面的一行放在同一行中,只需确保根据是否应显示动态组件来计算
HeightForRowIndexPath:
中的单元格高度。

我认为这并不困难

  • 首先,使用具有方法[YourCustomCell heightForItem:(object)yourItem]的自定义UITableViewCell
  • 使用
    -(CGFloat)tableView:(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath
    返回每行的单元格高度。我的代码中的示例:

    -(CGFloat)tableView:(UITableView*)tableView rowatinexpath的高度:(nsindepath*)indepath
    {
    MyAddress*address=self.dataSource[indexPath.row];
    返回[MyAddressCell cellHeightForAddress:address];
    }
    

  • -(UITableViewCell*)tableView:(UITableView*)tableView单元格for rowatinexpath:(nsindepath*)indepath
    中,将数据填入单元格:

    MyAddress*address=self.dataSource[indexPath.row];
    [单元格填充地址:address]