Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone iOS:是否有可能使UINavigationBar更高,并且;推;屏幕下面的其他视图?_Iphone_Ios_Cocoa Touch - Fatal编程技术网

Iphone iOS:是否有可能使UINavigationBar更高,并且;推;屏幕下面的其他视图?

Iphone iOS:是否有可能使UINavigationBar更高,并且;推;屏幕下面的其他视图?,iphone,ios,cocoa-touch,Iphone,Ios,Cocoa Touch,有没有办法让iPhone应用程序的“内容”区域意识到更大的导航栏? 与这些问题类似: 我已经设法使用第1个问题示例代码在UINavigationBar上添加了一个类别并更改了其高度,并在需要的地方添加了一个子视图,但我找不到一种方法使UITableView(或任何内容视图)考虑其高度: (颜色仅用于区分不同的视图)第一个问题的公认答案设置导航栏的框架布局子视图,根据其他布局代码所做的假设,该视图从“EWWWW”到完全错误 相反,重写-sizeThatFits:以返回更合适的大小。我将通

有没有办法让iPhone应用程序的“内容”区域意识到更大的导航栏?

与这些问题类似:

我已经设法使用第1个问题示例代码在UINavigationBar上添加了一个类别并更改了其高度,并在需要的地方添加了一个子视图,但我找不到一种方法使UITableView(或任何内容视图)考虑其高度:



(颜色仅用于区分不同的视图)

第一个问题的公认答案设置导航栏的框架布局子视图,根据其他布局代码所做的假设,该视图从“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,这样的布局黑客通常看起来是有效的。有一次我需要这样做,但通常有更可靠的方法来实现这一点。