iOS:具有自定义单元格的Tableview不会滚动

时间:2013-12-05 01:15:40

标签: ios objective-c uitableview

我正在使用导航栏精心设计的tableviewcontrollers来显示数据层次结构。底层数据显示在自定义tableviewcell中,其内容以xib描述,并导致所需的单元格高度大于默认值。我发布了另一个关于如何以编程方式提取结果单元格高度但没有可用答案的问题,所以我现在实现heightForRowAtIndexpath来返回一个硬编码值,即xib属性面板中的高度。但是,当显示的行数超过正常显示大小(480h,320w)时,底行会按预期切断,但我无法滚动它以查看行的其余部分。我进行了相当广泛的搜索,但没有任何帮助。我戳了各种属性(tableview大小,scrollingEnabled等),但它们都看起来像预期值(例如,scrollingEnabled为true)。一篇文章建议除非contentSize大于帧,否则不会发生滚动,所以我查看了这些值,听起来很有希望,因为我的帧大小是典型的460h x 320w,但是,我的contentSize是0 x 0!进一步搜索(例如,“设置contentSize”或“contentSize为0”)没有清除任何内容。我认为contentSize是从表行计数及其高度中免费计算出来的,那么我怎么能得到0呢?即使通过不实现heightForRowAtIndexpath返回允许默认行高,仍然会产生0 contentSize。有些搜索建议关闭自定义表格单元格的autoLayout,但仍然相同。那么,可能会出现什么问题呢?感谢您的任何想法或指导。

更新:抱歉,我承认!我最初是在带有普通USB鼠标的Mac mini上开发的,在模拟器中滚动按下按钮并拖动。我最近用魔术鼠标切换到了iMac。我现在已经习惯了在鼠标上拖动手指以滚动代码,网页等,我没想过尝试单击并按住鼠标左键“按钮”,然后拖动鼠标。当我这样做时,一切都按预期工作。当mini上的应用程序中的任何类似变量/值与iMac上的相同时,我真的认为事情是没有希望的,但只是我被花哨的技术欺骗了。抱歉分心。

2 个答案:

答案 0 :(得分:0)

设置tableView的框架和单元框架的正确,并执行
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
在你的UITableView中给出正确的高度。

如果这不起作用,请尝试将tableView.autoresizingMask设置为UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;

这可以帮助你了解tableview的大小

答案 1 :(得分:0)

我有类似的问题。当内容超出tableViews框架时,我的tableView不会滚动。

对我来说问题是我检查了“使用Autolayout”但没有约束tableView。在tableView上添加垂直和水平空间约束修复了我的问题

相关问题