如何让UILabel字体上下对齐?

UILabel可以设置左对齐、右对齐和居中,那如何实现上下对齐呢?

有几种方案:

1.简单粗暴,在文本后面加多一些\n。但是\n后还得加至少一个空格,否则多余的\n会被UILabel忽略。

2.自定义UILabel,重写- (void)drawTextInRect:(CGRect)rect;
下面是代码

- (void)drawTextInRect:(CGRect) rect
{
    NSAttributedString *attributedText = [[NSAttributedString alloc]     initWithString:self.text attributes:@{NSFontAttributeName:self.font}];
    rect.size.height = [attributedText boundingRectWithSize:rect.size
                                                    options:NSStringDrawingUsesLineFragmentOrigin
                                                    context:nil].size.height;
    if (self.numberOfLines != 0) {
        CGFloat textHeight = MIN(rect.size.height, self.numberOfLines * self.font.lineHeight);
/*****
 打开这句话即为下对齐
 rect.origin.y = self.frame.size.height - textHeight;
 *****/
        rect.size.height = textHeight;
    }
    [super drawTextInRect:rect];
}

 

 就这么简单!

转载于:https://www.cnblogs.com/xiaobaizhu/articles/5711586.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值