본문 바로가기

Swift

@IBDesignable , @IBInspectable in Custom Object

반응형

사용된 예제는 꼼꼼한 재은씨의 Swift : 실전편 을 토대로 작성하였으며 설명 또한 인용한 부분이 있습니다.

@IBDesignable

  • 커스텀 객체(버튼, 스테퍼 등)를 스토리보드에서 미리보기 하고 싶을 때 해당 클래스 정의 구문 위에 추가합니다.

@IBInspectable

  • 커스텀 객체(버튼, 스테퍼 등)의 속성을 스토리보드 내에서 변경하고 싶은 경우 해당 속성을 선언할 때 추가합니다.

설명

  • 커스텀 객체를 만들 때 프로그래밍 방식을 사용하면 디자인 요소에 변화를 주는 경우 빌드를 한 다음 확인을 해야 하는 번거로움이 있지만 @IBDesignable 을 사용하면 스토리보드에서 미리 보기가 가능합니다.
  • 또한, @IBInspectable 을 사용하여 인터페이스 빌더를 통해 커스텀 객체의 속성을 설정할 수 있습니다.
  • 즉, 프로그래밍 방식으로 커스텀 객체를 만들었지만 스토리보드 내에서 미리 보기가 가능하며 속성 또한 스토리보드 내에서 변경 가능합니다.

코드

import UIKit

@IBDesignable
public class CustomStepper: UIView {
    @IBInspectable public var stepValue: Int = 1
    @IBInspectable public var maximumValue: Int = 100
    @IBInspectable public var minimumValue: Int = -100
    public var leftBtn = UIButton(type: .system)
    public var rightBtn = UIButton(type: .system)
    public var centerLabel = UILabel()

    // more

    public required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }

    public override init(frame: CGRect) {
        super.init(frame: frame)
    }

    // more

}

참고

꼼꼼한 재은 씨의 스위프트 실전편

IBInspectable / IBDesignable

Attributes - The Swift Programming Language (Swift 4.2)

반응형