2016-06-28 7 views
2

Core Graphicsを使用して新しい画像を生成するUIImageViewのサブクラスを作成しました。この画像は、オプションの境界線で円に切り取られます。私はアプリを実行すると正常に動作します。ただし、Interface Builderでは、生成されたイメージは適切にレンダリングされますが、UIImageViewの "no image set"プレースホルダの下に表示されます。また、IBでimageプロパティが2回表示され、オーバーライドされたフィールドを設定した場合にのみ新しいイメージが生成されます。通常のUIImageViewフィールドでイメージを設定すると、サブクラス化されていないかのように動作します。これはIBのバグですか、それとも修正がありますか?私たちは、アップル社のIBの実装で立ち往生しているIBDesignableサブクラスでUIImageViewのイメージプロパティをオーバーライドする方法は?

@IBInspectable override var image : UIImage? { 
    didSet { 
     // Make the image a circle 
     makeCircleImage() 
    } 
} 

enter image description here

答えて

0

は、私は怖いです。 imageを無効にする回避策を見つけることをお勧めします。代わりに、prepareForInterfaceBuilderawakeFromNibを実装してそこで実行するか、描画またはレイアウトメソッドでこの操作を1回実行するか、または設定したときにこの操作を行うboolean型のIBInspectable varを使用することができます。

関連する問題