模态对话框中的UITableView& heightForRowAtIndexPath

时间:2012-02-23 21:42:34

标签: ios uitableview uitabbarcontroller

这几乎是我第一次在代码中实现表视图。我创建了一个简单的表视图类,我没有使用InterfaceBuilder这部分。我试着用这个方法: heightForRowAtIndexPath 我是我的班级,将第一行高度大小(在第0部分中)更改为100,对于休息,它返回self.rowHeight; 我还创建了我的tableviewcontroller(tableViewController的子类)来在模式对话框中显示我的表视图。我试图在模态对话框中显示它,当它出现在模态对话框中时,第一部分的行高(当它假设为100时)不是100。实际上它与其他行的大小相同。 如果我使用相同的tableview添加到我的应用程序中的另一个视图(不使用模态对话框),它会将第一行高度显示为100.你知道什么可以强制模态对话框中的行高不要像它设置的那样方法heightForRowAtIndexPath?

谢谢, 卡姆兰

1 个答案:

答案 0 :(得分:1)

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

委托和数据源方法的目的是完成tableview的大多数自定义,而不必进行子类化。如果您正在设置delegate = self和datasource = self,那么您肯定做错了什么。即使您确实必须继承UITableView,tableview的委托和数据源也不应该是自己的。