Youngminah/TIL

@IBDesignable와 @IBInspectable는 무엇?

Youngminah opened this issue · 0 comments

IBInspectable

image

  • Inspector와 관련이 있다고 보면 된다
  • 런타임에 속성이 결정된다.
class CustomView: UIView {

   @IBInspectable var borderWidth: CGFloat {
        get {  return layer.borderWidth }
        set {  layer.borderWidth = newValue }
    }
}

image

  • Border Witdh가 인스펙터 영역에 추가되었다
  • inspector에서 해당 인터페이스 요소의 속성을 변경할 수 있게 하는 것이 IBInspectable이다.
  • 저기서 값을 변경하는 것이 바로 "set연산"이 되는것
  • 여기까지만 설정하면 스토리보드에서 바로바로 즉각적인 확인은 아직 안되는 상태이다.

IBDesignable로 바로바로 업데이트를 확인하자

  • 컴파일 타임에서 (=실시간) 으로 확인이 가능하게 하는것
@IBDesignable
class CustomView: UIView {

   @IBInspectable var borderWidth: CGFloat {
        get {  return layer.borderWidth }
        set {  layer.borderWidth = newValue }
    }
}

image

  • IBDesignable를 설정해줌으로써 바로바로 확인이 가능하다