在视图顶部添加固定位置视图

时间:2015-06-07 23:45:29

标签: ios objective-c cocoa-touch

UITableViewController内有UINavigationController。我正在为tableView添加一个“模态”子视图,当选择其中一行时,这是一个自定义UIView。

(这是精神上的模态,不是UIKit意义上的,因为Apple不支持iPhone上的模态视图,我在表格视图的控制器中添加了[self.view addSubview:customView]。)

我希望它出现在屏幕的底部并保持在那里。我可以在底部绘制它,但是一旦我滚动表视图,视图就会随之移动。以下是一些插图:

初始位置(好):

enter image description here

滚动后的位置(不好):

enter image description here

我通过从[UIScreen mainScreen].bounds减去所有镶边(导航栏和状态栏)的高度以及自定义视图的高度来获得最低位置。

如何让自定义视图保持不变?我是否应该在滚动表格视图时不断调整其框架?

2 个答案:

答案 0 :(得分:1)

您最好也是最灵活的选择是切换到使用视图控制器并将表视图作为子视图,以便您可以更改其框架并添加同级视图。然后,当您想要添加模态时,您可以运行动画来移动表格视图并滑动模态视图。

答案 1 :(得分:0)

UITableViewController.viewUITableView的一个实例。意味着您将自定义视图添加到滚动视图中,这就是它滚动的原因。您可以尝试将自定义视图放入tableFooterView的{​​{1}}属性中,这是旧学校的解决方案。

我个人会创建一个容器UITableView并让UIViewController成为它的子viewController。另一个子viewController UITableViewController或只是一个简单的UIViewController可以代表页脚。