Develop/Swift
스토리보드, XIB Inspectable에 enum 연동하는 방법
hsleedevelop
2023. 1. 29. 12:17
반응형
스토리보드, XIB에서 UIButton (또는 그외 컨트롤) 에 @IBInspectable을 연동해서 사용하는 경우가 많은데, IBInspectable 값을 enum 으로 선언해서 연동하는 방법입니다.
enum 타입 작성
enum StatusShape:Int {
case Rectangle = 0
case Triangle = 1
case Circle = 2
}
@Inspectable 작성
// IB: use the adapter
@IBInspectable var shapeAdapter:Int {
get {
return self.shape.rawValue
}
set( shapeIndex) {
self.shape = StatusShape(rawValue: shapeIndex) ?? .Rectangle
}
}
Interface Builder에서 확인
기본값 설정
// Programmatically: use the enum
var shape:StatusShape = .Rectangle
최종 코드
@IBDesignable
class ViewController: UIViewController {
enum StatusShape:Int {
case Rectangle
case Triangle
case Circle
}
// Programmatically: use the enum
var shape:StatusShape = .Rectangle
// IB: use the adapter
@IBInspectable var shapeAdapter:Int {
get {
return self.shape.rawValue
}
set( shapeIndex) {
self.shape = StatusShape(rawValue: shapeIndex) ?? .Rectangle
}
}
}
출처 : https://stackoverflow.com/questions/27432736/how-to-create-an-ibinspectable-of-type-enum
반응형