0

我刚刚开始使用 iOS 开发,我试图实现一些到目前为止似乎对我不起作用的东西......

情况如下:我有一个 nib 文件,其中放置了一个 UITableView,并且就在 UIToolbar 的下方。效果很好,如果我尝试不同的屏幕尺寸等,缩放效果很好……所以我很高兴。

但问题是:工具栏是否可见是用户可以在应用程序的某处做出的选择。但是,当用户选择看不到工具栏时,我只需调用工具栏上的 setHidden 方法并将其传递给“是”。当我尝试此操作时,工具栏现在消失了,但 UITableView 没有拉伸到屏幕底部,这给了我一个非常难看的结果。

所以最后的问题是:隐藏工具栏时如何自动让视图伸展到底部?我想我将不得不在代码中执行此操作(而不仅仅是某个配置选项),但由于我来自 Android,这对我来说有点奇怪。

4

2 回答 2

1

您最好的选择可能是在显示/隐藏工具栏时调整 tableview 框架的大小。

CGRect frame = myTableView.frame;
frame.size.height += toolbar.frame.height;
myTableView.frame = frame;
于 2012-11-20T11:40:18.337 回答
-1

因为您使用的是自动布局,所以您希望为 UITableView 创建一个高度约束并通过 IBOutlet 将其与您的视图控制器链接。然后,要修改 UITableView 的高度,只需执行以下操作:

_tableViewHeightConstraint.constant += toolbar.frame.height;

您甚至可以使用以下方法对其进行动画处理:

[UIView animateWithDuration:0.25 animations:^{
    _tableViewHeightConstraint.constant += toolbar.frame.height;
}];

请注意,您可能需要[_tableView layoutIfNeeded]在更改高度约束后调用。

于 2012-11-20T17:08:29.480 回答