我试图在运行时添加一个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;
}
发布于 2008-11-21 04:39:57
首先,确保调用了initWithFrame:方法。如果您的视图位于Nib中,则将改为调用initWithCoder:。
其次,按钮是否是唯一的子视图(从您的代码看,它看起来是这样的,但您永远不会知道)。按钮可能隐藏在另一个子视图后面。调用bringSubviewToFront:如果需要的话。
最后,视图本身是可见的吗?它是否足够大,可以显示按钮?给出您的示例,如果视图的宽度小于100像素,按钮将不会显示,因为它将被视图的边界裁剪。
发布于 2010-10-08 16:37:21
您必须释放btn
并删除buttonClick
中的":“
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];
[self.view addSubview:btn];
[btn release];
发布于 2009-04-04 15:34:38
如果仍然不起作用,请尝试删除选择器名称末尾的::@选择器(ButtonClick)
https://stackoverflow.com/questions/307845
复制相似问题