Iphone iOS:是否有可能使UINavigationBar更高,并且;推;屏幕下面的其他视图?
有没有办法让iPhone应用程序的“内容”区域意识到更大的导航栏? 与这些问题类似:Iphone iOS:是否有可能使UINavigationBar更高,并且;推;屏幕下面的其他视图?,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,有没有办法让iPhone应用程序的“内容”区域意识到更大的导航栏? 与这些问题类似: 我已经设法使用第1个问题示例代码在UINavigationBar上添加了一个类别并更改了其高度,并在需要的地方添加了一个子视图,但我找不到一种方法使UITableView(或任何内容视图)考虑其高度: (颜色仅用于区分不同的视图)第一个问题的公认答案设置导航栏的框架布局子视图,根据其他布局代码所做的假设,该视图从“EWWWW”到完全错误 相反,重写-sizeThatFits:以返回更合适的大小。我将通
(颜色仅用于区分不同的视图)第一个问题的公认答案设置导航栏的框架布局子视图,根据其他布局代码所做的假设,该视图从“EWWWW”到完全错误
相反,重写-sizeThatFits:以返回更合适的大小。我将通过调整tableView.frame来实现这一点,如下所示:
CGRect navFrame = self.navigationController.navigationBar.frame;
CGRect tableFrame = self.tableView.frame;
tableFrame.size.height = tableFrame.size.height - navFrame.size.height;
tableFrame.origin.y = navFrame.size.height; //move it down by the height covered by the navigation Bar
self.tableView.frame = tableFrame;
您也可以使用其他视图进行此操作-即,只需调整框架即可
我在这台计算机上没有XCode,所以我没有检查代码——只是把它作为一个例子写出来,所以请在使用它之前自己检查一下 +1表示“(颜色只是为了使不同的视图可以区分)”因为否则我会投票结束:)我们有赢家了!我从sizeThatFits返回所需的大小,所有内容都会正确调整大小。谢谢这真的不是一个可行的方法,只要有几个不同的观点。我必须在每个ViewController上实现这一点-1.导航控制器的视图将定期布置(例如,在旋转变化时);在你做一些意想不到的事情之前,比如旋转设备或推/弹出另一个VC,这样的布局黑客通常看起来是有效的。有一次我需要这样做,但通常有更可靠的方法来实现这一点。