UIButton未被添加到自定义UIView Objective C中

时间:2016-04-16 23:59:08

标签: objective-c uiview uibutton

我正在创建一个名为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,我把它挂钩在视图控制器上。当我运行应用程序时,没有显示任何按钮,我不确定为什么。任何帮助将不胜感激。

1 个答案:

答案 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

的大小