ios:按钮的子视图未显示

Posted

技术标签:

【中文标题】ios:按钮的子视图未显示【英文标题】:ios : subview of a button not showing up 【发布时间】:2014-08-12 19:41:56 【问题描述】:

我的代码如下:

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
CGRect frame = CGRectMake(50, 125, 220, 40);
button.frame = frame;
button.layer.cornerRadius = 20;
button.backgroundColor = [UIColor  colorWithRed:0.42 green:0.66 blue:0.31 alpha:1.0];
button.layer.masksToBounds = YES;
[self.view addSubview:button];
button.autoresizesSubviews = NO;
button.clipsToBounds = YES;

UILabel *addLabel = [[UILabel alloc] initWithFrame:CGRectMake(15, 10, 100, 100)];
addLabel.text = @"+";
addLabel.textColor = [UIColor blackColor];
addLabel.textAlignment = NSTextAlignmentCenter;
addLabel.font = [UIFont fontWithName:@"HelveticaNeue-UltraLight" size:80.0f];
[button addSubview:addLabel];
addLabel.autoresizesSubviews = NO;
addLabel.clipsToBounds = YES;

我的buttonios/iPhone 模拟器中显示正常,但 addLabel 标签根本没有显示。

我错过了什么?

【问题讨论】:

【参考方案1】:

标签上的边框太大。结果,标签文本被绘制在按钮框架之外。理想情况下,标签的框架最多与按钮高度一样高。

【讨论】:

这是正确的答案。由于 UILabel 垂直居中而您水平居中,因此文本将出现在距图像左上角大约 65.0f, 65.0f 的位置,但您的图像只有 40px 高。【参考方案2】:

UIButton 已经有一个titleLabel。您是否尝试过仅使用它?

button.titleLabel.text = "+";

甚至使用不同的按钮类型:

UIButton* button = [UIButton buttonWithType:UIButtonTypeContactAdd];

【讨论】:

以上是关于ios:按钮的子视图未显示的主要内容,如果未能解决你的问题,请参考以下文章

记录 UIScrollView 的子视图会显示未添加的子视图

下载进度未显示在所有视图中 ios

UIBarButtonItem 未显示在子视图中

UITableViewCell 附件视图按钮未在 ipad 纵向模式下显示

IOS:如何使从 nib 文件加载的子视图可以使用它的按钮(IBAction)

如何将视图添加为某些控制器的子视图