ios – UILabel文本第一行的中心图像

ios – UILabel文本第一行的中心图像,第1张

概述我想将图像居中到我的UILabel第一行文本中心Y位置.我使用masonry来设置自动布局约束: [_haveReadIndicatorImgView mas_makeConstraints:^(MASConstraintMaker *make) { make.top.left.equalTo(self.contentView).offset(SMALL_OFFSET); 我想将图像居中到我的UILabel第一行文本的中心Y位置.我使用masonry来设置自动布局约束:

[_haveReadindicatorimgVIEw mas_makeConstraints:^(MASConstraintMaker *make) {        make.top.left.equalTo(self.contentVIEw).offset(SMALL_OFFSET);        make.height.wIDth.equalTo(@(8));    }];    [_topTxtlbl mas_makeConstraints:^(MASConstraintMaker *make) {        make.left.equalTo(_haveReadindicatorimgVIEw.mas_right).offset(TINY_OFFSET);        make.top.equalTo(_haveReadindicatorimgVIEw.mas_top);        make.right.equalTo(self.arrowimgVIEw.mas_left).offset(-SMALL_OFFSET);        make.bottom.equalTo(_dateTxtLbl.mas_top).offset(-SMALL_OFFSET);    }];

它应该非常明确.我只是将UIImageVIEw的顶部附加到我的标签顶部.

但看看屏幕.

UIImageVIEw(灰点)和标签的上边缘相等,但如何使UIImageVIEw居中于第一行文字?

谢谢.

解决方法 我通过两个步骤实现以下目标:

1)用特定字体计算文本标签行的预期高度:

+(CGSize)getSimpleSizeBasedOnFont:(CGfloat)Font{    UILabel *lbl = [UILabel new];    lbl.text = @"Simple text";    lbl.Font = [UIFont systemFontOfSize:Font];    return [lbl.text sizeWithFont:lbl.Font                                constrainedToSize:lbl.frame.size                                    lineBreakMode:NSlineBreakByWorDWrapPing];}

>然后我添加约束到UIImage视图的中心Y,偏移量等于该高度的50%:

CGfloat lblOffs = [Helper getSimpleSizeBasedOnFont:14] .height;        [_haveReadindicatorimgVIEw mas_makeConstraints:^(MASConstraintMaker * make){            make.centerY.equalTo(_topTxtlbl.mas_top).offset(lblOffs / 2);            make.left.equalTo(self.contentVIEw).offset(SMALL_OFFSET);            make.height.wIDth.equalTo(@(8));        }];

总结

以上是内存溢出为你收集整理的ios – UILabel文本第一行的中心图像全部内容,希望文章能够帮你解决ios – UILabel文本第一行的中心图像所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1001437.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存