UIScrollView.size = view.size - allAdditionalBars.size(如 TabBar 或 NavigationBar)以编程方式

Posted

技术标签:

【中文标题】UIScrollView.size = view.size - allAdditionalBars.size(如 TabBar 或 NavigationBar)以编程方式【英文标题】:UIScrollView.size = view.size - allAdditionalBars.size (like TabBar or NavigationBar) programmatically 【发布时间】:2011-08-03 12:46:14 【问题描述】:

UIScrollView 以编程方式设置,请不要使用 .xib 文件发布答案。

我的 UIScrollView 位于我的模型类中,所以我希望代码能够轻松导入到另一个项目,例如。适用于 iPad 或旋转屏幕。

我有一个看法:

self.view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width;, self.view.frame.size.height;)];

还有我的 UIScrollView。我想设置它的大小以覆盖所有屏幕,不包括我的控制器类将拥有的所有条。但我不知道怎么做;)

我想减去 self.view.frame.size.height - self.navigationController.navigationBar.frame.height 和 self.tabBarController.tabBar.height 如果每个都存在的话。

有没有什么方法可以自动设置 UIScrollView 的大小..?

提前谢谢你!

【问题讨论】:

【参考方案1】:

在您的 UIViewController 子类中,您无需担心任何 UINavigationController 或 UITabBarController chrome 的大小。这些控制器会自动调整控制器主视图的大小以适应适当的内容区域。

如果我自己在控制器的loadView 中创建 UIView,我通常最初将其大小设置为[[UIScreen mainScreen] applicationFrame]。如果我要添加一个 UIScrollView 作为子视图,它会填满主视图的整个区域(而不是直接使用 UIScrollView 作为主视图),我会使用 self.view.bounds 作为它的框架并确保设置 @ 987654324@.

【讨论】:

以上是关于UIScrollView.size = view.size - allAdditionalBars.size(如 TabBar 或 NavigationBar)以编程方式的主要内容,如果未能解决你的问题,请参考以下文章

Pyinstaller 程序:无法打开自我 Dev\dist\view\view.exe 或存档 Dev\dist\view\view.pkg

UIViewController - View1、View2、View 3依次显示

从 ListView 获取孩子会导致 android.view.View android.view.View.findViewById(int) 在空对象引用上

自定义View基础 - 最易懂的自定义View原理系列

必须是以下之一:View.VISIBLE、View.INVISIBLE、View.GONE [重复]

进阶之路 | 奇妙的View之旅