我正在寻找向 UIButton 类添加 .owner 和 .number 方法。我需要为每个单独的数字分配一个(int)数字,以便我可以使用数字来分隔按钮。
例如,我可以写buttonName.number = 1
和buttonName.owner = @"Player1";
我该怎么做呢?
我正在寻找向 UIButton 类添加 .owner 和 .number 方法。我需要为每个单独的数字分配一个(int)数字,以便我可以使用数字来分隔按钮。
例如,我可以写buttonName.number = 1
和buttonName.owner = @"Player1";
我该怎么做呢?
做这件事的方法很少。更简单的方法是继承 UIButton 类并根据需要添加属性,这可以实现为;
@interface MyButton:UIButton
@property(nonatomic, assign) int number;
@property(nonatomic, strong) NSString *owner
@end
另一种方法是使用运行时将属性添加到类中。为此,您将为该类创建一个类别,然后将属性添加到接口中,然后使用运行时将属性添加到它;
@interface UIButton(MyCategory)
@property(nonatomic, assign) float number;
@property(nonatomic, strong) NSString *owner;
@end
@implementation UIButton(MYCategory)
NSString *const numberKey = @"kNumberKey";
NSString *const ownerKey = @"kOwnerKey";
- (float)number{
return [objc_getAssociatedObject(self, &numberKey) floatValue];
}
-(void)setNumber:(float)num{
objc_setAssociatedObject(self, &numberKey,[NSNumber numberWithFloat:num], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
-(NSString*)owner{
return objc_getAssociatedObject(self, &ownerKey);
}
-(void)setOwner:(NSString *)own{
objc_setAssociatedObject(self, &ownerKey, own, OBJC_ASSOCIATION_COPY);
}
@end
有了这个,您将能够将自定义属性添加到 UIButton 类本身。