是否有一个属性窗口的大小没有状态栏的大小?
我正在动态创建一组控件,我想占据整个屏幕(但只有可见部分),但当我将它们放在主window.Frame
或window.Bounds
上时,顶部按钮在状态栏下绘制。
我对这个世界很陌生,所以我可能错过了一些明显的东西。我当然可以手动进行数学运算(20px,从我在其他地方读到的)或者我可以hide it,但我希望有一种方法可以用框架内置的东西来做。
答案 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);