我试图在我的应用程序的UILabel视图中垂直对齐文本.问题是我希望文本垂直对齐顶部,标签大小为280 x 150.我只能实现这两件事之一.如果我删除该行
[myLabel sizetoFit];
然后文本的对齐没问题,但是大小搞砸了.但是如果我添加上面的行,那么对齐就搞砸了但是大小没问题.我该如何解决这个问题.
CGRect labelFrame = CGRectMake(22,50,280,150); UILabel *myLabel = [[UILabel alloc] initWithFrame:labelFrame]; [myLabel setText:finalRecipe]; [myLabel setBackgroundColor: [UIColor lightGrayColor]]; [myLabel setNumberOfLines:0]; [myLabel sizetoFit]; [self.view addSubview:myLabel];
解决方法
我是FXLabel的作者,虽然我不认识Manish,但我相信他正在努力帮助(如果他在为我做广告,我当然没有要求他,而且我没有付钱给他 – 抱歉马尼什!).
FXLabel的一个特性是它尊重标签的UIContentMode属性,如“接口”构建器中所设置的那样.这意味着你可以设置label.contentMode = UIViewContentModetop;将文本对齐到标签视图的顶部(这对常规UILabel不起作用).相关的例子在这里:
07000
FXLabel是UILabel的一个子类,所以我认为对于提出的问题来说这是一个非常好的解决方案.但是,如果海报宁愿在不使用第三方库的情况下解决问题(这是可以理解的),那么这里是代码:
CGRect labelFrame = CGRectMake(22,150); UILabel *myLabel = [[UILabel alloc] initWithFrame:labelFrame]; [myLabel setText:finalRecipe]; [myLabel setBackgroundColor: [UIColor lightGrayColor]]; [myLabel setNumberOfLines:0]; CGFloat fontSize = 0.0f; labelFrame.size = [myLabel.text sizeWithFont:myLabel.font minFontSize:myLabel.minimumFontSize actualFontSize:&fontSize forWidth:labelFrame.width lineBreakMode:myLabel.lineBreakMode]; myLabel.frame = labelFrame; [self.view addSubview:myLabel];
注意:(这是未经测试的,如果有任何拼写错误,请道歉)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。