2016-07-19 2 views
1

Так что я играл с PaintCode и StyleKits в Xcode. Я сделал кнопку, создал UIView с собственным подклассом, и он отлично проявляется в моем ViewController и на моем устройстве. Тем не менее, я хочу преобразовать этот UIView в UIButton, так как я хочу, чтобы код выполнялся при его прослушивании. Как мне это сделать?UIButton in PaintCode (Swift)

спасибо, ребята и имеют хороший :)

ответ

1

Я использую метод UIImage PaintCode, и использовать этот UIImage в качестве образа UIButton в. Вот код, который я использую, который находится в 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

Большое вам спасибо за ваш ответ. Первоначально я использовал TapGestureRecognizer в UIView, а затем создал segue для другого VC, но затем я нашел более элегантное решение. Я создал новый подкласс для UIButton и использовал тот же метод рисования StyleKit. Затем я нажал кнопку в построителе интерфейса и изменил класс на подкласс, который я определил. Работал как магия. –