Monotouch UIWindow属性的大小没有状态栏?

时间:2011-04-17 03:18:13

标签: xamarin.ios

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

我正在动态创建一组控件,我想占据整个屏幕(但只有可见部分),但当我将它们放在主window.Framewindow.Bounds上时,顶部按钮在状态栏下绘制。

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

我是通过调整自定义控件框架来实现的。像

这样的东西
button.Frame = new RectangleF(0, _statusBar.Frame.Bottom, button.Frame.Width, button.Frame.Height);