2011-04-17 36 views
1

是否有一个属性是没有状态栏大小的窗口大小?单击大小没有状态栏的UIWindow属性?

我正在动态创建一组控件,我想要占据整个屏幕(但仅限于可见部分),但是当我将它们基于主要的window.Framewindow.Bounds时,顶部按钮会在状态栏下绘制。

我对这个世界相当陌生,所以我可能错过了一些明显的东西。我当然可以手动进行数学运算(20px,从我读的其他地方),或者我可以hide it,但我希望有一种方法可以用框架内置的东西来完成。

回答

3

将UIScreen.MainScreen.Bounds与UIScreen.MainScreen.ApplicationFrame进行比较。前者“[c]包含屏幕的边界矩形,以点为单位。”后者包含“框架矩形用于您的应用程序的窗口......此属性包含屏幕边界减去状态栏占用的区域(如果它是可见的)。使用此属性是推荐的方法来检索您的应用程序的初始窗口大小。矩形以点指定。“通常,根据UIScreen.MainScreen.Bounds设置UIWindow对象,以便填充整个屏幕,包括状态栏占用的点。您使用UIScreen.MainScreen.ApplicationFrame设置占用“整个屏幕(但仅限可见部分)”的UIView对象的框架。然后你相​​对于UIView对象的几何定位你的按钮,你不必担心状态栏。

0

我这样做是通过调整自定义控件框架。类似于

button.Frame = new RectangleF(0, _statusBar.Frame.Bottom, button.Frame.Width, button.Frame.Height); 
+0

你把系统状态栏变成一个变量(你的例子中的'_statusBar')是什么? – patridge 2011-04-19 18:37:10

+2

UIApplication.SharedApplication - 有一些属性。其中之一是StatusBarFrame。 – Scarlaxx 2011-04-27 15:51:05