我正在创建一个名为DropDown的自定义UIView,它包含一个按钮。在.h文件中我初始化按钮,在UIView的构造函数中,我将它添加到框架并设置标题。这是构造函数:
-(id) initWithFrame:(CGRect)frame title1:(NSString*)text1{
self = [super initWithFrame:frame];
if (self){
_button1 = [UIButton buttonWithType:UIButtonTypeCustom];
[_button1 setTitle:text1 forState:UIControlStateNormal];
_button1.frame = CGRectMake(10, 10, 50, 20);
[self addSubview:_button1];
}
return self;
}
在我的ViewController viewDidLoad中,我按如下方式实例化一个DropDown对象:
_dropDown = [[DropDown alloc] initWithFrame:_dropDown.frame title1:@"Title"];
_dropDown对象是一个IBOutlet,我把它挂钩在视图控制器上。当我运行应用程序时,没有显示任何按钮,我不确定为什么。任何帮助将不胜感激。
答案 0 :(得分:1)
本声明
_dropDown = [[DropDown alloc] initWithFrame:_dropDown.frame title1:@"Title"];
此时引用_dropDown.frame nil
,因为_dropDown
尚未分配。我建议明确地创建框架:
_dropDown = [[DropDown alloc] initWithFrame:CGRectMake(10, 10, 50, 20) title1:@"Title"];
(您需要弄清楚CGRectMake
)