iOS:UIButton 不显示
Posted
技术标签:
【中文标题】iOS:UIButton 不显示【英文标题】:iOS: UIButton doesn't show up 【发布时间】:2014-10-29 16:07:30 【问题描述】:我正在创建一个简单的按钮并将其作为子视图添加到主视图。但它没有显示出来。
这是设置它的代码:
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
这意味着它应该显示在左上角,但它没有。怎么了?
【问题讨论】:
不要直接设置标题标签。请改用setTitle:forState:
【参考方案1】:
一个可能的原因是您直接使用了titleLabel
。考虑改用setTitle:forState:
方法。
为了确定,请考虑将backgroundColor
设置为调试步骤,以确保它出现。
编辑正如其他人建议的那样,尝试使用buttonWithType:
而不是[[UIButton alloc] init]
。我建议使用UIButtonTypeSystem
而不是UIButtonTypeCustom
。
【讨论】:
谢谢。这使按钮可见,但是每当我单击它时,它都不会像其他按钮那样变暗。这有什么问题? 这可能和你alloc
it的方式有关。按照其他答案的建议尝试buttonWithType:
,但我建议使用UIButtonTypeSystem
而不是UIButtonTypeCustom
,因为您没有任何自定义行为。
非常感谢。那解决了它。我还使用contactButton.tintColor
将自定义蓝色更改为更体面的颜色。【参考方案2】:
您应该使用以下方法初始化按钮:
UIButton* contactButton = [UIButton buttonWithType:UIButtonTypeCustom];
【讨论】:
【参考方案3】:尝试以不同的方式构建您的按钮:
UIButton* contactButton = [UIButton buttonWithType:UIButtonTypeCustom];
contactButton.backgroundColor = [UIColor redColor];
contactButton.titleLabel.text = @"Contact Developer";
[contactButton sizeToFit];
[self.view addSubview:contactButton];
【讨论】:
【参考方案4】:您确定没有显示按钮吗?
我认为您错误地设置了按钮的标题,并且由于默认 UIButton
具有清晰的背景和白色标题这一事实,如果您的超级视图也是白色的,则它不可见。
而不是设置:contactButton.titleLabel.text = @"Contact Developer"
使用:[contactButton setTitle:@"Contact Developer" forState:UIControlStateNormal]
但您可以先尝试为按钮设置backgroundColor
,与超级视图不同,以查看是否已添加。
希望对您有所帮助! (如果我有错误,对不起我的英语)
【讨论】:
谢谢,这与 Mohannad A. Hassan 的建议差不多,而且效果很好。 是的,很抱歉“重复”,直到我发布我的答案,我才看到他的答案。以上是关于iOS:UIButton 不显示的主要内容,如果未能解决你的问题,请参考以下文章