我有一个UITableView(在UIViewController上),我想在其上面添加一个iAd横幅,但是在我已经位于顶部的工具栏下方。我正在尝试移动tableView(参考视图),这样我就可以在空白处找到横幅。
要检查它,我创建了一个动作,我在其中移动tableView框架:
-(IBAction)iAdAction:(id)sender{
self.tableViewConc.frame=CGRectMake(0, 94, 320, 367);}
其中94是工具栏中的44和来自横幅的50的总和。
动作正常但是,我无法滚动到tableView的底部,当我尝试它时,它会反弹回来。我试图在同一个动作中更改tableView的高度(例如430而不是367),但它不起作用。我也在IB上试过它,但它也不起作用。
我觉得我错过了一些东西,但我不记得是什么。
任何帮助?
提前致谢!
答案 0 :(得分:17)
无法滚动到tableview的底部通常是其高度过大的症状。 (即它在底部被切断)
不要计算所需的高度,并将这些数字放在代码中。只需从视图层次结构中找出它应该是什么。例如,您可以使用CGRectGetHeight(self.view.bounds) - CGRectGetMaxY(self.iAdView)
计算表格视图的高度,并使用CGRectGetMaxY(self.iAdView)
计算视图的y原点,假设iAd视图和表格视图都是self.view
的子视图。或者,更好的是,只需使用自动调整大小的掩码或自动布局来保持表格视图的正确大小。
答案 1 :(得分:10)
你可以尝试
self.tableView.contentInset = UIEdgeInsetsMake(0, 0, 44, 0);
答案 2 :(得分:2)
我刚刚遇到了这个令人尴尬的场景,我的UITableView会“反弹”,但它不会滚动到底部。对于我来说,问题在于我是动态设置行高,而我的最后一个单元格的计算单元高度为-115(是,否定)。一旦我修复它以返回正数,我的滚动工作就好了。
答案 3 :(得分:2)
即使我们可以在故事板中实现相同的目标。
选择tableView - >从故事板控件中单击“添加缺失约束”。这将为tableView和View添加约束。
这帮助我解决了这个问题。 Screenshot_Link
答案 4 :(得分:0)
检查看不到的行数。
在viewDidLoad中,添加以下方法:
myTableView.contentInset = UIEdgeInsets(top: 0,left: 0,bottom: yourCellHeight * rowHeight,right: 0)
希望我能对您有所帮助