我正在创建一个简单的按钮并将其作为子视图添加到主视图中。它没有显示出来。
这是设置它的代码:
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
这意味着它应该出现在左上角但不是。怎么了?
答案 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
设置为与超级视图不同的按钮,以查看是否已添加。
希望它有所帮助! (如果我有错误,抱歉我的英文)