IP 전화/IPad:화면 너비를 프로그래밍 방식으로 가져오는 방법은 무엇입니까?
안녕하세요. 프로그래밍 방식으로 폭을 구할 수 있는 방법이 있는지 궁금합니다.
iphone 3gs, iphone 4, ipad를 수용할 수 있을 정도로 일반적인 것을 찾고 있습니다.또한 장치가 세로인지 가로인지에 따라 너비가 변경되어야 합니다(ipad의 경우).
이거 어떻게 하는지 아는 사람?한동안 찾고 있었어요...감사합니다!
UIS 화면을 확인합니다.
예를 들면
CGFloat width = [UIScreen mainScreen].bounds.size.width;
상태 표시줄을 포함하지 않으려면 applicationFrame 속성을 확인합니다(폭에 영향을 미치지 않음).
업데이트: UISreen(-bounds 또는 -applicationFrame)은 현재 인터페이스 방향을 고려하지 않는 것으로 나타났습니다.보다 정확한 방법은 UIView에 경계를 묻는 것입니다. 이 UIView가 View 컨트롤러에 의해 자동으로 회전되었다고 가정합니다.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
뷰가 View 컨트롤러에 의해 자동 회전되지 않는 경우, 인터페이스 방향을 확인하여 뷰 경계의 어느 부분이 '폭'과 '높이'를 나타내는지 확인해야 합니다.프레임 속성은 (기본적으로) 인터페이스 방향을 고려하지 않는 UI 창의 좌표 공간에서 뷰의 직선을 제공합니다.
CGRect screen = [[UIScreen mainScreen] bounds];
CGFloat width = CGRectGetWidth(screen);
//Bonus height.
CGFloat height = CGRectGetHeight(screen);
이 작업은 세 줄의 코드로 수행할 수 있습니다.
// grab the window frame and adjust it for orientation
UIView *rootView = [[[UIApplication sharedApplication] keyWindow]
rootViewController].view;
CGRect originalFrame = [[UIScreen mainScreen] bounds];
CGRect adjustedFrame = [rootView convertRect:originalFrame fromView:nil];
사용:
NSLog(@"%f",[[UIScreen mainScreen] bounds].size.width) ;
iOS 9.0부터는 방향을 안정적으로 잡을 방법이 없습니다.이것은 내가 세로 모드만을 위한 앱 I 디자인에 사용한 코드이므로 앱이 가로 모드에서 열리더라도 여전히 정확할 것입니다.
screenHeight = [[UIScreen mainScreen] bounds].size.height;
screenWidth = [[UIScreen mainScreen] bounds].size.width;
if (screenWidth > screenHeight) {
float tempHeight = screenWidth;
screenWidth = screenHeight;
screenHeight = tempHeight;
}
이 코드를 사용하면 도움이 됩니다.
[[UIScreen mainScreen] bounds].size.height
[[UIScreen mainScreen] bounds].size.width
화면 크기를 확인하는 Swift 방법은 현재 인터페이스 방향도 고려합니다.
var screenWidth: CGFloat {
if UIInterfaceOrientationIsPortrait(screenOrientation) {
return UIScreen.mainScreen().bounds.size.width
} else {
return UIScreen.mainScreen().bounds.size.height
}
}
var screenHeight: CGFloat {
if UIInterfaceOrientationIsPortrait(screenOrientation) {
return UIScreen.mainScreen().bounds.size.height
} else {
return UIScreen.mainScreen().bounds.size.width
}
}
var screenOrientation: UIInterfaceOrientation {
return UIApplication.sharedApplication().statusBarOrientation
}
이러한 기능은 다음에 표준 기능으로 포함되어 있습니다.
https://github.com/goktugyil/EZSwiftExtensions
언급URL : https://stackoverflow.com/questions/3655104/iphone-ipad-how-to-get-screen-width-programmatically
'source' 카테고리의 다른 글
수식을 편집하는 동안 (다른 시트의 셀을) 강조 표시하는 방법은 무엇입니까? (0) | 2023.08.20 |
---|---|
스위프트에 있는 모든 물체와 모든 물체 (0) | 2023.08.20 |
MariaDb 10.6의 NVARCHAR 열에 대한 기본 데이터 정렬 변경 (0) | 2023.08.20 |
ADB 셸 입력 이벤트 (0) | 2023.08.15 |
MySQL의 SELECT 문에 열을 올바르게 추가하는 방법은 무엇입니까? (0) | 2023.08.15 |