微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ios – 垂直对齐UILabel

我试图在我的应用程序的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 举报,一经查实,本站将立刻删除。

相关推荐