mah*_*udz 3 subclass uibutton ios
当将drawRect用于自定义UIButton子类时,似乎永远不会调用它来突出显示时绘制按钮.我是否需要在触摸事件中为我的按钮调用setNeedsDisplay?
小智 13
我找到了一个简单的解决方
只需将以下方法添加到您的UIButton子类:
-(void)setHighlighted:(BOOL)highlighted
{
[super setHighlighted:highlighted];
[self setNeedsDisplay];
}
Run Code Online (Sandbox Code Playgroud)
而已!
据我所知,没有直接的方法来继承UIButton.
UIButton不是初始化程序返回的实际类类型.UIButton是一系列私人课程的前沿.
说你有:
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
NSLog(@"myButton type: %@", [myButton description]);
Run Code Online (Sandbox Code Playgroud)
您会发现日志中返回的类型为"UIRoundedRectButton".问题是你需要扩展"UIRoundedRectButton".这是不可能的,因为它是一个只返回给UIButton的私人类.
最重要的是"UIRoundedRectButton"不是唯一可能返回的类,所有这些都是私有的.
换句话说,UIButton的构建方式不适合扩展.