iOS/UIKit

[IOS] @IBDesignable , @IBInspectable

유훈 | Yuhun 2022. 2. 1. 23:46
반응형

@IBDesignable은 Object를 커스텀했을때 스토리보드에서 바로 볼 수 있도록 해 주는 요소이다.

- 남용하면 빌드 시간이 길어지고 가끔 오류를 뱉어 Xcode를 다시 껐다 켜야했다..

@IBInspectable은 Object를 커스텀하고 StoryBoard inspecter에서 조작이 가능하게 해 주었습니다.

 

버튼을 커스텀하는 예시를 보면

import UIKit

// UIButoon을 커스텀하는 예제로 꼭 UIButton을 상속해 주어야 한다.

 // 변경되면 스토리보드에서 바로 볼 수 있다.
@IBDesignable class RoundButton: UIButton {
    // @IBInspectable을 줌으로 스토리보드에서 값 변경 가능하다.
    @IBInspectable var isRound : Bool = false {
    	// 값이 할당되면 실행되는 didSet
        didSet{
        	// True이면 높이의 반 만큼 모서리를 둥글게 한다 라고 커스텀
            if isRound {
                self.layer.cornerRadius = self.frame.height / 2
            }
        }
    }
}

이제 이렇게 추가한 클래스를 스토리보드의 버튼에 Custom Class를 추가해주면 속성 inspecter에 다음과 같은 창이 생성되어 스토리보드에서 설정이 가능해집니다.

커스텀을 잘 응용하면 필요한 기능을 만들수 있지 않을까 싶습니다.

반응형