描画を追加するために UIButton サブクラスを作成しています。コードで正常に動作しています。@IBdesignable 経由で試行すると、次のエラーが発生します。
エラー: IB Designables: 自動レイアウト ステータスの更新に失敗しました: エージェントがクラッシュしました
エラー: IB Designables: DashboardHeaderView のインスタンスのレンダリングに失敗しました: エージェントがクラッシュしました
以下はコードサンプルです
let context:CGContextRef = UIGraphicsGetCurrentContext()!
UIGraphicsPushContext(context)
UIGraphicsBeginImageContextWithOptions(rect.size, false, 0.0);
var path:UIBezierPath!
let pathRect:CGRect = CGRectMake(strokeWidth / 2, strokeWidth / 2, pathSize - iconStrokeWidth, pathSize - iconStrokeWidth);
path = UIBezierPath(rect: pathRect )
iconColor.setStroke()
iconPath.lineWidth = iconStrokeWidth;
iconPath.stroke()
CGContextAddPath(context, iconPath.CGPath);
let image:UIImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsPopContext();
UIGraphicsEndImageContext();
エージェント クラッシュ エラーは
let context:CGContextRef = UIGraphicsGetCurrentContext()!
init + drawRect + initilizeButtonDrawings をオーバーライドしましたが、肯定的な結果は得られませんでした
required init(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)!
self.initilizeButtonDrawings()
}
override init(frame: CGRect) {
super.init(frame: frame)
self.initilizeButtonDrawings()
}
override func drawRect(rect:CGRect) {
super.drawRect(rect)
self.initilizeButtonDrawings()
}
override func prepareForInterfaceBuilder () {
self.initilizeButtonDrawings()
}
これはすべてObjective Cで正常に機能していますが、迅速にクラッシュします