我想要实现UITableView一直位于UIView的中央,最开始UIView只有两三行,但是用户可以自己添加行,添加之后怎么能让UITableView也能根据变化自动调整到中央位置?像下面的图一样:
这就需要你每次在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
代码不想写,方法是,在tableview刷新数据的时候(这句是重点)
你先判断tableview的内容的高,如果小于uiview的高度的话,设置tableview的位置为cgrectmake(0,(uiview的高度-tableview的内容的高)/2,uiview的宽,tableview的内容的高)。如果大于等于的话就设置tableview的位置为cgrectmake(0,0,uiview的宽,uiview的高)。希望对你有帮助。