iOS:UIButton没有显示出来

时间:2014-10-29 16:07:31

标签: ios objective-c cocoa-touch uiview uibutton

我正在创建一个简单的按钮并将其作为子视图添加到主视图中。它没有显示出来。

这是设置它的代码:

UIButton* contactButton = [[UIButton alloc] init];
contactButton.titleLabel.text = @"Contact Developer";
[contactButton sizeToFit];
[self.view addSubview:contactButton];
NSLog(@"X: %f || Y: %f || Width: %f || Height: %f", contactButton.frame.origin.x, contactButton.frame.origin.y, contactButton.frame.size.width, contactButton.frame.size.height);

您可能已经注意到,我在末尾放置了一些调试代码,以查看按钮的位置和尺寸。它们是:X:0,Y:0,宽度:30,高度:34

这意味着它应该出现在左上角但不是。怎么了?

4 个答案:

答案 0 :(得分:1)

您应该使用以下内容初始化按钮:

UIButton* contactButton = [UIButton buttonWithType:UIButtonTypeCustom];

答案 1 :(得分:1)

尝试以不同的方式构建按钮:

UIButton* contactButton = [UIButton buttonWithType:UIButtonTypeCustom];
contactButton.backgroundColor = [UIColor redColor];
contactButton.titleLabel.text = @"Contact Developer";
[contactButton sizeToFit];
[self.view addSubview:contactButton];

答案 2 :(得分:1)

可能的原因是您直接使用了titleLabel。请考虑使用setTitle:forState:方法。

首先,请考虑将backgroundColor设置为调试步骤,以确保它出现。


修改正如其他人所建议的那样,请尝试使用buttonWithType:代替[[UIButton alloc] init]。我建议使用UIButtonTypeSystem代替UIButtonTypeCustom

答案 3 :(得分:1)

你确定没有显示按钮吗?

我认为您错误地设置了按钮的标题,并且由于默认UIButton具有清晰的背景和白色标题,如果您的超级视图也是白色,则不可见。
而不是设置:
contactButton.titleLabel.text = @"Contact Developer"
用途:
[contactButton setTitle:@"Contact Developer" forState:UIControlStateNormal]

但您可以先尝试将backgroundColor设置为与超级视图不同的按钮,以查看是否已添加。

希望它有所帮助! (如果我有错误,抱歉我的英文)