子类 UIButton 似乎没有初始化

Posted

技术标签:

【中文标题】子类 UIButton 似乎没有初始化【英文标题】:Subclassed UIButton doesn't appear to initialize 【发布时间】:2012-05-01 00:14:06 【问题描述】:

这开始是一个简单的问题,但我无法解决。我已经对 UIButton 进行了子类化(我知道,有争议),但我似乎无法让它正常工作。我的 UIButton 子类如下所示:

.h

@interface SocialButton : UIButton 

 @property (nonatomic, strong) CustomClass *cust;

 - (id)initWithObject:(CustomClass *)custom andFrame:(CGRect)frame; 

@end

.m

@implementation SocialButton

@synthesize custom=_custom;

 - (id)initWithObject:(CustomClass *)custom andFrame:(CGRect)frame; 
 
   self = [self initWithFrame:frame];
   if (self) 
           
     [self addTarget:self action:@selector(buttonTouchUpInside:)  forControlEvents:UIControlEventTouchUpInside];
     self.backgroundColor = [UIColor blueColor];
     self.cust = custom;
   

   return self;
  

@end

稍后,当我尝试从此类创建一个按钮时,如下所示:

 SocialButton *social = [[SocialButton alloc] initWithObject:object andFrame:frame];

它似乎不起作用。有什么建议吗?

【问题讨论】:

【参考方案1】:

你好像忘了打电话给super。变化:

self = [self initWithFrame:frame];

到:

self = [super initWithFrame:frame];

【讨论】:

是的,我做到了。就是这么简单。

以上是关于子类 UIButton 似乎没有初始化的主要内容,如果未能解决你的问题,请参考以下文章

从 nib 加载的 UIButton 的子类未正确初始化

子类UIButton:属性未在super.init调用时初始化

在情节提要上使用 UIButton 子类会使按钮的边框消失

UIButton 子类中的 imageview.transform 奇怪的行为

如何使这个 UIButton 的动作正确运行?

自定义 UIButton 没有点击效果