iOS - applicationFrame和bounds的區別

一. applicationFrame和bounds的區別 app

示例代碼: spa


CGFloat width = [UIScreen mainScreen].bounds.size.width;
	CGFloat height = [UIScreen mainScreen].bounds.size.height;
	NSLog(@"width :%f, height: %f", width, height);
//
	CGFloat applicationFrameHeight = [[UIScreen mainScreen] applicationFrame].size.height;
	CGFloat applicationFrameWidth = [[UIScreen mainScreen] applicationFrame].size.width;
	NSLog(@"applicationFrameWidth : %f, applicationFrameHeight : %f ", applicationFrameWidth, applicationFrameHeight);



控制檯輸出:


width :320.000000, height: 568.000000 code

applicationFrameWidth : 320.000000, applicationFrameHeight : 548.000000  io

這是在5s下運行出來的,bounds指的是Points,與像素點無關。像素點要寬高分別乘以scale得出。 class

能夠看出bounds計算出來的是所有的大小,包括狀態欄。而applicationFrame計算出來的則是除去狀態欄的大小。

狀態欄指的是手機屏幕上的最上方顯示運營商和手機電量的一欄,在代碼裏是用StatusBar表示的。 co

上面的是在豎屏狀態下的結果。 像素

applicationFrame這個在橫豎屏時計算出來的也有須要注意的:在豎屏下高會減去狀態欄的高度20,如上所說,但在橫屏時不會減去狀態欄高度,也就是在橫屏下計算出來的applicationFrame和bounds的值相同。這個時候不會減去狀態欄高度。

相關文章
相關標籤/搜索