

UIViewを継承したカスタムクラスにおいて、以下のような形でIBInspectableなプロパティを作成することができます。

[code]

    @property (strong, nonatomic) IBInspectable NSString *customTitle;
    
[/code]

ただこの方法だと、配列で文字列を保持することが出来ません。  
例えば、以下のように指定してもIBインスペクタに何も表示されません。

[code]

    @property (strong, nonatomic) IBInspectable NSArray *customTitles;
    
[/code]

カスタムViewにおいて、UISegmentedControlのように、IBインスペクタから複数のTitle文字列を保存できるようにするにはどのようにしたら良いでしょうか？


CC BY-SA 3.0
2015-07-07T08:42:35.503
12114
2015-07-07T09:57:52.280
732
question
ios objective-c xcode iphone storyboard
UIViewを継承したカスタムクラスにおいて、配列でIBInspectableな文字列を保持する方法


Appleの公式ドキュメントを引用します。

[Creating a Custom View That Renders in Interface
Builder](https://developer.apple.com/library/ios/recipes/xcode_help-
IB_objects_media/Chapters/CreatingaLiveViewofaCustomObject.html)

これのstep 12より引用：

> By using the IBInspectable attribute to declare variables as  
>  inspectable properties, you allow Interface Builder to quickly  
>  rerender your custom view as you change the values of these properties  
>  in the Attributes inspector. You can attach the IBInspectable  
>  attribute to any property in a class declaration, class extension, or  
>  category for any type that’s supported by the Interface Builder  
>  defined runtime attributes: boolean, integer or floating point number,  
>  string, localized string, rectangle, point, size, color, range, and  
>  nil.

すなわち、IBInspectableの対象になっているのは

boolean (BOOL)  
integer or floating point number (int、CGFloat、double）  
string (NSString)  
localized string (? 未確認。すみません)  
rectangle (NSRect、CGRect）  
point (NSPoint、CGPoint)  
size (NSSize、CGSize)  
color (NSColor、UIColor)  
range (NSRange)

NSArrayは、IBInspectableの対象外です。（おそらく、現時点では。将来はわかりません。）

※引用には載っていませんが、UIImageもIBInspectableだそうです。


CC BY-SA 3.0
2015-07-07T09:23:58.197
12118
2015-07-07T09:57:52.280
2015-07-07T09:57:52.280
7362
7362
12114
answer