투케이2K

148. (Objective-C/objc) CGRect 사용해 컴포넌트 배치 및 사이즈 지정 수행 본문

Objective-C

148. (Objective-C/objc) CGRect 사용해 컴포넌트 배치 및 사이즈 지정 수행

투케이2K 2024. 5. 17. 13:30

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

 

// ------------------------------------------------------------------------------
// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
// ------------------------------------------------------------------------------
- (void)testMain {
    [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
            M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
            description:@"테스트 함수 시작 실시" data:nil];

    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // ---------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------
        //*
        dispatch_async(dispatch_get_main_queue(), ^{
            
            // [뷰 화면 사이즈 확인 실시]
            double deviceHeight = self.view.frame.size.height;
            double deviceWidth = self.view.frame.size.width;
            
            
            // [디바이스 휴대폰 상태 바 높이 사이즈 확인 실시]
            double statusBarFrameHeight = [UIApplication sharedApplication].statusBarFrame.size.height;
            double statusBarFrameWidth = [UIApplication sharedApplication].statusBarFrame.size.width;
            
            
            // [컴포넌트가 생성 될 사이즈 및 위치 값 지정]
            double componentsHeight = 100.0;
            double componentsWidth = 200.0;
            double componentsX = (deviceWidth - componentsWidth) / 2; // [width 가운데 중앙]
            double componentsY = (deviceHeight - statusBarFrameHeight - componentsHeight) / 2; // [height 가운데 중앙]

            
            // [CGRect 사용해 컴포넌트가 생성 될 사이즈 및 위치 설정 실시]
            CGRect cgRect = CGRectMake(
                                            componentsX, // [x]
                                            componentsY, // [y]
                                            componentsWidth, // [width]
                                            componentsHeight // [height]
                                    );

            
            // [로그 출력]
            NSLog(@"CGRect :: 정보 확인 :: %@", NSStringFromCGRect(cgRect));
            
        });
        // */
        // ---------------------------------------------

    }
    @catch (NSException *exception) {
        NSLog(@"\n[NSException : 예외 상황 발생] : %s\n", exception.description.UTF8String);
    }
}
 

[결과 출력]

 

 

반응형
Comments