HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了UILabel没有在iOS8中显示子视图大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我为背景制作了一个标签,并在UILabel上添加了UIButton.它在iOS 7中显示,但在iOS 8中它没有显示.如果我用UIView替换UILabel那么它工作正常.

如果我使用此代码在iOS 8中使用UILabel用于显示UILabel和子视图UIButton

UILabel *downLabel = [[UILabel alloc]init];
downLabel.frame    = CGRectMake(0,SCREEN_HEIGHT*0.92,SCREEN_WIDTH,SCREEN_HEIGHT*0.08 );  
[downLabel setBACkgroundColor:[UIColor colorWithRed:(66/255.f) green:(67/255.f) blue:(63/255.f)  alpha:1]];
downLabel.userInteractionEnabled = YES;
[self.view addSubview:downLabel];

UIButton *downbtnobj  = [[UIButton alloc]initWithFrame:CGRectMake(SCREEN_WIDTH*0.68,downLabel.frame.size.height/10,SCREEN_WIDTH*0.30,downLabel.frame.size.height/1.25)];

UIImage *btndownImage = [UIImage imagenamed:@"img 3.png"];
[downbtnobj setImage:btndownImage forState:UIControlStateNormal];
[downbtnobj addTarget:self action:@SELEctor(bulleTinButtonClicked) forControlEvents:UIControlEventTouchUpInside];
[downLabel addSubview:downbtnobj];

现在您只能看到UILabel正在显示,但UILabel上没有显示按钮.

如果我用UIView取代UILabel那么它就显得很完美了.

UIView *downLabel = [[UIView alloc]init];
downLabel.frame    = CGRectMake(0,SCREEN_HEIGHT*0.08 );
[downLabel setBACkgroundColor:[UIColor colorWithRed:(66/255.f) green:(67/255.f) blue:(63/255.f)  alpha:1]];
downLabel.userInteractionEnabled = YES;
[self.view addSubview:downLabel];

 UIButton *downbtnobj  = [[UIButton alloc]initWithFrame:CGRectMake(SCREEN_WIDTH*0.68,downLabel.frame.size.height/1.25)];
  UIImage *btndownImage = [UIImage imagenamed:@"img 3.png"];
[downbtnobj setImage:btndownImage forState:UIControlStateNormal];
[downbtnobj addTarget:self action:@SELEctor(bulleTinButtonClicked) forControlEvents:UIControlEventTouchUpInside];
[downLabel addSubview:downbtnobj];

在这代码中你可以看到我只用UIView替换UILabel.现在按钮显示.

可以帮助为什么子视图没有在iOS8中的UILabel上显示

解决方法

目前还不清楚iOS 8中的标签有什么不同,但如果你在标签调用layoutIfNeeded,则可以解决问题(需要在设置框架后),
UILabel *downLabel = [[UILabel alloc]init];
downLabel.frame    = CGRectMake(0,SCREEN_HEIGHT*0.08 );  
[downLabel layoutIfNeeded];
[downLabel setBACkgroundColor:[UIColor colorWithRed:(66/255.f) green:(67/255.f) blue:(63/255.f)  alpha:1]];
downLabel.userInteractionEnabled = YES;
[self.view addSubview:downLabel];

编辑后:

我还发现,如果您设置文本(在创建标签后的任何时间),则会出现按钮.

大佬总结

以上是大佬教程为你收集整理的UILabel没有在iOS8中显示子视图全部内容,希望文章能够帮你解决UILabel没有在iOS8中显示子视图所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。