如何在运行时添加UIButton

Jam*_*een 16 iphone cocoa-touch

我试图UIButton在运行时添加一个但是它不可见.我究竟做错了什么?

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        UIButton *btn = [[UIButton buttonWithType:UIButtonTypeRoundedRect] retain];
        btn.frame = CGRectMake(0, 0, 100, 25);
        btn.backgroundColor = [UIColor clearColor];
        [btn setTitle:@"Play" forState:UIControlStateNormal];
        [btn addTarget:self action:@selector(buttonClick:)
        forControlEvents:UIControlEventTouchUpInside];
        btn.center = self.center;
        [self addSubview:btn];
    }
    return self;
}
Run Code Online (Sandbox Code Playgroud)

Aug*_*ust 9

首先,确保调用initWithFrame:方法.如果您的视图位于Nib中,则会调用initWithCoder :.

第二,按钮是唯一的子视图(从您的代码看起来像它,但你永远不知道).该按钮可以隐藏在另一个子视图后面.调用bringSubviewToFront:如果需要.

最后,视图本身是否可见?是否足以显示按钮?根据您的示例,如果视图宽度小于100像素,则按钮将不会显示,因为它将被视图的边界剪切.