我UITableViewController
内有UINavigationController
。我正在为tableView
添加一个“模态”子视图,当选择其中一行时,这是一个自定义UIView。
(这是精神上的模态,不是UIKit意义上的,因为Apple不支持iPhone上的模态视图,我在表格视图的控制器中添加了[self.view addSubview:customView]
。)
我希望它出现在屏幕的底部并保持在那里。我可以在底部绘制它,但是一旦我滚动表视图,视图就会随之移动。以下是一些插图:
初始位置(好):
滚动后的位置(不好):
我通过从[UIScreen mainScreen].bounds
减去所有镶边(导航栏和状态栏)的高度以及自定义视图的高度来获得最低位置。
如何让自定义视图保持不变?我是否应该在滚动表格视图时不断调整其框架?
答案 0 :(得分:1)
您最好也是最灵活的选择是切换到使用视图控制器并将表视图作为子视图,以便您可以更改其框架并添加同级视图。然后,当您想要添加模态时,您可以运行动画来移动表格视图并滑动模态视图。
答案 1 :(得分:0)
UITableViewController.view
是UITableView
的一个实例。意味着您将自定义视图添加到滚动视图中,这就是它滚动的原因。您可以尝试将自定义视图放入tableFooterView
的{{1}}属性中,这是旧学校的解决方案。
我个人会创建一个容器UITableView
并让UIViewController
成为它的子viewController。另一个子viewController UITableViewController
或只是一个简单的UIViewController
可以代表页脚。