当我实例化这个按钮类时,是否可以发送额外的参数,如下所示:?
BttClass *myButton = [[BttClass alloc] init];
如果是这样,正确的语法是什么?我一直在尝试各种! 我想发送一个 BOOL 和一个字符串。 谢谢。
通过继承 UIButton 来扩展它。
//MyButton.h
@interface MyButton : UIButton {
}
@property (nonatomic, strong) NSString* aString;
@property (nonatomic, weak) BOOL aBool;
您需要定义一个初始化方法
-(id)initWithStringValue:(NSString *)stringValue andWithBoolValue:(bool)boolValue;
然后实现初始化方法
//MyButton.m
-(id)initWithStringValue:(NSString *)stringValue andWithBoolValue:(bool)boolValue {
self = [super init];
if (self) {
self.aString = stringValue;
self.aBool = boolValue;
}
return self;
}
在调用类中,您的代码看起来像
MyButton* myButton = [[MyButton alloc] initWithStringValue:@"tralala" andWithBoolValue:YES];
只需定义一个自定义初始化程序并传入您的值:
- (id)initWithBoolValue:(bool)boolValue stringValue:(NSString *)stringValue {
self = [super init];
if (self) {
// Custom initialization
}
return self;
}
创建您的自定义按钮
在你的
自定义按钮.h
@interface CustomButton : UIButton
- (id)initWithBooleanValue:(BOOL)value;
@end
并在您的 CustomButton.m
- (id)initWithBooleanValue:(BOOL)value
{
self = [super init];
if (self)
{
NSLog(@"Bool = %d",value);
}
return self;
}
您可以使用此类代替普通的 UIButton