투케이2K

88. (Objective-C/objc) CGRectMake 사용해 UILabel 라벨 컴포넌트 동적 생성 위치 설정 및 addSubview 뷰 컨트롤러에 추가 본문

Objective-C

88. (Objective-C/objc) CGRectMake 사용해 UILabel 라벨 컴포넌트 동적 생성 위치 설정 및 addSubview 뷰 컨트롤러에 추가

투케이2K 2022. 9. 22. 11:18

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");
    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // [뷰 화면 사이즈 확인 실시]
        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]
                                );
        
        
        // [컴포넌트 생성 실시]
        UILabel *label = [[UILabel alloc] initWithFrame:cgRect];
        
        
        // [컴포넌트 속성 설정 실시]
        [label setText:@"투케이2K"];
        [label setTextAlignment:NSTextAlignmentCenter];
        [label setTextColor:UIColor.whiteColor];
        [label setBackgroundColor:UIColor.blueColor];
        
        
        // [뷰 컨트롤러에 추가]
        [self.view addSubview:label];
        
        
        // [로그 출력 실시]
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> try :: 로직 처리 결과 확인 실시] \n");
        printf("[deviceHeight :: %f] \n", deviceHeight);
        printf("[deviceWidth :: %f] \n", deviceWidth);
        printf("[statusBarFrameHeight :: %f] \n", statusBarFrameHeight);
        printf("[statusBarFrameWidth :: %f] \n", statusBarFrameWidth);
        printf("==================================== \n");
        printf("\n");

    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]

 

 
반응형
Comments