Objective c 获取视图的帧/边界

Objective c 获取视图的帧/边界,objective-c,cocoa-touch,uikit,Objective C,Cocoa Touch,Uikit,另一个新手问题:如果我有一个UIViewController,顶部有一个可见的导航栏,底部有一个可见的工具栏,我如何向视图控制器询问视图“可见”区域的坐标(框架、边界)?(self.view.frame和self.view.bounds返回null)如果我理解正确,您可以自己计算帧大小 #define kNavigationBarHeight 44 #define kToolbarHeight 44 #define kSystemBarHeight 20 #define kWindowWidth

另一个新手问题:如果我有一个
UIViewController
,顶部有一个可见的导航栏,底部有一个可见的工具栏,我如何向视图控制器询问视图“可见”区域的坐标(框架、边界)?(
self.view.frame
self.view.bounds
返回null)

如果我理解正确,您可以自己计算帧大小

#define kNavigationBarHeight 44
#define kToolbarHeight 44
#define kSystemBarHeight 20
#define kWindowWidth 320
#define kWindowHeight 480

int width = kWindowWidth;
int heigth = kWindowHeight - kNavigationBarHeight - kToolbarHeight - kSystemBarHeight;
CGSize myViewSize = CGSizeMake(width, height);

如果导航栏和工具栏为标准尺寸,且布局方向为portait,则会出现这种情况。

self.view.frame和self.view.bounds不能返回null,它们返回CGRect。你的意思是CGRect表示宽度和高度为0的rect吗?亨里克·汉森:你是如何确定它们“返回空值”的?屏幕大小为320×480,窗口占据整个屏幕。在可预见的未来,后者可能仍然适用,但前者在iOS平台上的某些设备上已经不适用了。
[[UIScreen mainScreen]bounds]