ios - 模态对话框中的 UITableView 和 heightForRowAtIndexPath

标签 ios uitableview uitabbarcontroller

这几乎是我第一次在代码中实现 TableView 。我创建了一个简单的 TableView 类,并且这部分没有使用 InterfaceBuilder。我尝试使用该方法: heightForRowAtIndexPath 我是我的类(class),将第一行高度大小(第 0 节中)更改为 100,其余行则返回 self.rowHeight; 我还创建了 tableviewcontroller(tableViewController 的子类)来在模式对话框中显示我的 TableView 。我尝试在模态对话框中呈现它,当它出现在模态对话框中时,第一部分的行高大小(假设为 100 时)不是 100 。实际上它与其他行的大小相同。 如果我使用将相同的 TableView 添加到我的应用程序中的另一个 View (不使用模式对话框),它会将第一行高度显示为 100。您知道什么会强制模式对话框中的行高度不符合其中设置吗方法 heightForRowAtIndexPath?

谢谢, 卡姆兰

最佳答案

听起来您创建了 UITableView 的子类。这是我很久以前学到的一条规则。如果您要子类化 UITableView 或 NSTableView,那么您可能做错了什么。这里没有魔法。 UITableViewController 自动设置为其 TableView 的委托(delegate)和数据源。 heightForRowAtIndexPath 是一个委托(delegate)方法。所以它属于委托(delegate)类。阅读有关委托(delegate)方法的 UITableView 和 Objective-C 编程文档。另外,http://dbrajkovic.wordpress.com/2011/03/10/delegate-methods-there-is-no-magic-cappuccino-cocoa/

委托(delegate)和数据源方法的要点是无需子类化即可完成 TableView 的大部分自定义。如果您设置 delegate = self 和 datasource = self,那么您肯定做错了什么。即使您确实必须子类化 UITableView,tableview 的委托(delegate)和数据源也不应该是 self。

关于ios - 模态对话框中的 UITableView 和 heightForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9421816/

相关文章:

iPhone更改按钮点击上的选项卡栏项目

iphone - 以编程方式将选项卡栏 Controller 添加到当前应用程序流

ios - CALayer 委托(delegate)仅在使用 Swift 时偶尔调用

ios - UILabel Padding 基于内容

iphone - uitableview 每行显示 3 个对象

ios - 循环后如何在主队列上重新加载表(Objective-c)

ios - 删除所选行 - 不是最后保存的行

objective-c - UIButton @selector如何工作?

ios - App Store证书/ key 对代码签名过程中是否存在 "screw it up permanently"情况?

swift - 在 2 个标签栏 Controller 之间切换 swift ios