source

IP 전화/IPad:화면 너비를 프로그래밍 방식으로 가져오는 방법은 무엇입니까?

lovecheck 2023. 8. 20. 11:55
반응형

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

반응형