2 ooomiao oOOMIAO 于 2012.12.26 10:25 提问

让UITableView一直位于UIView的中央

我想要实现UITableView一直位于UIView的中央,最开始UIView只有两三行,但是用户可以自己添加行,添加之后怎么能让UITableView也能根据变化自动调整到中央位置?像下面的图一样:

CSDN移动问答

2个回答

zhanglei5415
zhanglei5415   Rxr 2012.12.26 13:23
已采纳

这就需要你每次在reloadData 时根据当前数据的多少来计算出当前UITableView的height,并根据这个height来计算出UITableView的frame.origin.y 的位置,也就是需要你动态重置UItableView的frame.
比如你有四条数据,每行行高均为40.那么height=4*40; 那么UITableView的frame.origin.y的位置就应该是:

CGFloat posY=(self.view.frame.size.height-self.tableView.frame.size.height)/2
oOOMIAO
oOOMIAO 谢谢,有办法~
5 年多之前 回复
lwq421336220
lwq421336220   2012.12.26 12:38

代码不想写,方法是,在tableview刷新数据的时候(这句是重点) 你先判断tableview的内容的高,如果小于uiview的高度的话,设置tableview的位置为cgrectmake(0,(uiview的高度-tableview的内容的高)/2,uiview的宽,tableview的内容的高)。如果大于等于的话就设置tableview的位置为cgrectmake(0,0,uiview的宽,uiview的高)。希望对你有帮助。

oOOMIAO
oOOMIAO 也谢谢你的回答O(∩_∩)O~
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!