何を言っているのかわからない人のために説明すると、Xcode 6.0 には新しい機能 IBDesignable と IBInspectable が追加されました。
カスタム ビューに IBInspectable プロパティのタグを付けると、それらのプロパティが IB の属性インスペクターに表示されます。
同様に、カスタム UIView サブクラスに IBDesignable のタグを付けると、Xcode はビューをコンパイルし、コードを呼び出してビュー オブジェクトを Xcode ウィンドウで直接レンダリングするので、それらがどのように見えるかを確認できます。
IBDesignable および IBInspectable 属性をカスタム ビューに追加する手法は、Swift と Objective-C でほとんど同じです。IBInspectable プロパティは、定義に使用する言語に関係なく、Interface Builder Attributes Inspector に表示されます。
Objective-C で UIView のカテゴリを作成し、Swift で UIView の拡張を作成しました。これらは、ビューの基本レイヤーの borderWidth、cornerRadius、borderColor、および layerBackgroundColor プロパティをビューのプロパティとして昇格させます。プロパティを変更すると、拡張子/カテゴリは必要に応じて型変換を行い、変更をレイヤーに転送します。
IBInspectable 部分はうまく機能します。IB 属性インスペクタに新しいプロパティが表示され、設定できます。
先週、ビュー カテゴリ/拡張機能の IBDesignable 属性も機能しており、変更されたレイヤー属性を使用してカスタム UIView カテゴリが IB でレンダリングされていることを確認できました。今週は機能していません。
私は幻覚でしたか?
既存のシステム クラスのカテゴリ/拡張は、IBDesignable でセットアップされている場合、Interface Builder でカスタム UI を描画できますか?