uilabel 左上对齐_UILabel一行居中对齐与多行左对齐

想来用过UIAlertView的都知道其中的文字内容是居中对齐(水平方向)的,如果只有一行文字还好,多行文字时如果最后一行撑不满宽度,也会显示居中效果,整体看起来怪怪的。

这其实就是其中的label控件设置了水平居中(水平方向)的效果,它没法自动根据文字行数来自动调整对齐方式。

如果把label设置成文字内容左对齐,多行内容左对齐满足了,但是只有一行内容且很短时也居左对齐显得不太好。

所以问题就来了:怎么实现UILabel控件文字只有一行时居中对齐,有多行时左对齐。

常规办法无非是判断文字内容是否多行,涉及到宽度计算问题,想来就觉得麻烦,能不能让它自动计算呢?

不要让UILabel限制了思维,试问一个问题:如果一个label是左对齐,文字内容很短,不足以撑满屏幕宽度,怎么让它一个屏幕中显示的效果是水平居中呢?

我想答案应该是让label自适应文字内容宽度,设置label水平居中对齐于屏幕。

这个时候我想label无论设置什么水平方向对齐方式,都对上面的事实毫无影响。

既然多行需要居左对齐,那么就把label设置为左对齐,就好了。

所以为了解决上面的问题,需要借助一个containerView和AutoLayout。

这用到了UILabel的一个属性:intrinsicContentSize。有了这个属性,在AutoLayout中对UILabel控件进行布局时,可以不指定其宽高而让它根据文字内容进行自动适配宽高。

设置label和containerView的AutoLayout的方法应该是这样的:label相对于containerView水平方向、 垂直方向居中,不指定label宽度,label.left>=containerView.left,label.right<=containerView.right,label.top>=containerView.top,label.bottom<=containerView.top。

参考:

  • 0
    点赞
  • 0
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何谨

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值