2016-07-19 6 views
1

私はXcodeのPaintCodeとStyleKitsで遊んでいます。私はボタンを作成し、それ自身のサブクラスを持つUIViewを作成し、それは私のViewControllerと自分のデバイスでうまく表示されます。しかし、私はコードがタップされたときに実行するように、このUIViewをUIButtonに変換したいと思います。これをどうやってやるの?UIButton in PaintCode(Swift)

おかげでみんなと良いものを持っている:)

答えて

1

を私はPaintCodeのUIImageメソッドを使用して、UIButtonの画像としてUIImageことを使用します。 ObjCで使用しているコードですが、簡単にSwiftに変換する必要があります。

PaintCodeさんは、コード生成 - あなたが書く必要はありませんもの(このクラスはPaintCodeClassと呼ばれているふりをする):

+ (UIImage*)imageOfIcon 
{ 
    if (_imageOfIcon) 
     return _imageOfIcon; 

    UIGraphicsBeginImageContextWithOptions(CGSizeMake(30, 30), NO, 0.0f); 
    [PaintCodeClass drawIcon]; 

    _imageOfIcon = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return _imageOfIcon; 
} 

と私のコード:

UIImage *image = [PaintCodeClass imageOfIcon]; 
UIButton *button = (initialize, set frame, etc) 
[button setImage:image forState:UIControlStateNormal]; 

このより良いような一部の人々を:

[button setBackgroundImage:image forState:UIControlStateNormal]; 

これ以外にも、本当にしたい場合は、

[button addSubview:whateverThePaintCodeViewIsCalled]; 

しかし、これはボタンのようには動作しません。そのようにするのはおそらく望んでいません。

+0

ありがとうございました。私はもともとUIViewでTapGestureRecognizerを使用してから別のVCにセグを作成しましたが、より洗練されたソリューションが見つかりました。 UIButtonの新しいサブクラスを作成し、同じStyleKit描画メソッドを使用しました。次に、インタフェースビルダーのボタンをドラッグし、定義したサブクラスにクラスを変更しました。魔法のように働いた。 –