我在 PaintCode 中创建了一个自定义按钮。PC 有很多关于创建图形的文档,但没有使用它们。
我的方法有效,但我会遇到一些问题......我走的是子类化我放在故事板中的 UIButton 的路线。然后我为它分配了我的自定义按钮的类,我们称之为customButton
. 使用此方法,您可以连接 IB 中的操作,并且突出显示状态由touchesBegan
和touchesEnded
方法与切换突出显示视图的变量串联处理,但问题是,突出显示状态永远不会在快速触摸时显示。
customButton.m
:
@interface customButton ()
@property BOOL isPressed;
@end
@implementation customButton
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
}
return self;
}
-(void) awakeFromNib {
[super awakeFromNib];
_buttonText = @"Post";
}
- (void)drawRect:(CGRect)rect
{
[StyleKit drawCustomButtonWithFrame:rect pressed:_isPressed buttonText:_buttonText];
}
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
_isPressed = YES;
[self setNeedsDisplay];
}
- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
_isPressed = NO;
[self setNeedsDisplay];
}
我的问题:有没有更好的方法来实现用 PaintCode 绘制的按钮?这个问题是它并不总是显示突出显示的状态,并且感觉有点hacky。肯定有更好的方法吗?