@IBInspectable
- 이렇게 생긴 인스펙터에서 뷰, 라벨, 버튼 등 다양한 UI들의 상태를 변경할 수 있다
- 하지만 인스펙터에 존재하지 않는 것들이 있는데
- 이를
@IBInspectable
로 인스펙터에서 설정하게 할 수 있다
예시
- 버튼의 Radius를 둥글게 만들고 싶다
- 하지만 이 설정은 인스펙터에 존재하지 않는다
class ButtonRadius: UIButton {
@IBInspectable var isRound: Bool = false {
didSet {
if isRound {
self.layer.cornerRadius = self.frame.height / 2
}
}
}
}
- 이렇게 작성하고 변경하고 싶은 버튼의 클래스를
ButtonRadius
로 지정해주면
- 인스펙터에 다음과 같이 나온다
@IBDesignable
@IBInspectable
로 만든 임의의 설정들을 적용해도 스토리보드에는 적용되지 않지만
- 실행을 해서 보면 적용이 되어있는 것을 알 수 있다
- 만들면서 확인할 수는 없는 것일까??
- 스토리보드에서 실시간으로 볼 수 있게 해주는 것이
@IBDesignable
이다
예시
@IBDesignable
class ButtonRadius: UIButton {
@IBInspectable var isRound: Bool = false {
didSet {
if isRound {
self.layer.cornerRadius = self.frame.height / 2
}
}
}
}
하지만
- 나는
@IBDesignable
을 써도 적용이 되지 않았다
- 왜 안되는지 찾아봐야겠다