Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在UILabel中对齐不同大小的文本?

如何在UILabel中对齐不同大小的文本?

提问于 2018-05-07 17:10:42
回答 2关注 0查看 166

如何在UILabel中对齐不同大小的文本?一个例子是在价格横幅上将较小尺寸的美元数量与较大尺寸的美元数量对齐。

iOS6中的UILabel支持NSAttributedString这个功能,允许我在同一个UILabel中使用不同大小的文本。但它似乎没有用于顶部对齐文本的属性。有什么选择来实现这个?

回答 2

勇伟

回答已采纳

发布于 2018-05-08 01:51:26

代码:

代码语言:javascript
运行
AI代码解释
复制
- (NSMutableAttributedString *)styleSalePriceLabel:(NSString *)salePrice withFont:(UIFont *)font
{
    if ([salePrice rangeOfString:@"."].location == NSNotFound) {
        return [[NSMutableAttributedString alloc] initWithString:salePrice];
    } else {
        NSRange range = [salePrice rangeOfString:@"."];
        range.length = (salePrice.length - range.location);
        NSMutableAttributedString *stylizedPriceLabel = [[NSMutableAttributedString alloc] initWithString:salePrice];
        UIFont *smallFont = [UIFont fontWithName:font.fontName size:(font.pointSize / 2)];
        NSNumber *offsetAmount = @(font.capHeight - smallFont.capHeight);
        [stylizedPriceLabel addAttribute:NSFontAttributeName value:smallFont range:range];
        [stylizedPriceLabel addAttribute:NSBaselineOffsetAttributeName value:offsetAmount range:range];
        return stylizedPriceLabel;
    }
}

结果:

Super_Dean

发布于 2018-05-08 02:26:36

代码:

代码语言:javascript
运行
AI代码解释
复制
//Make sure the labels hug their contents
[self.bigTextLabel sizeToFit];
[self.smallTextLabel sizeToFit];

//Figure out the "blank" space above normal character height for the big text
UIFont *bigFont = self.bigTextLabel.font;
CGFloat bigAscenderSpace = (bigFont.ascender - bigFont.capHeight);

//Move the small text down by that ammount
CGFloat smallTextOrigin = CGRectGetMinY(self.bigTextLabel.frame) + bigAscenderSpace;

//Figure out the "blank" space above normal character height for the little text
UIFont *smallFont = self.smallTextLabel.font;
CGFloat smallAscenderSpace = smallFont.ascender - smallFont.capHeight;

//Move the small text back up by that ammount
smallTextOrigin -= smallAscenderSpace;

//Actually assign the frames
CGRect smallTextFrame = self.smallTextLabel.frame;
smallTextFrame.origin.y = smallTextOrigin;
self.smallTextLabel.frame = smallTextFrame;

(这段代码假设你有两个分别名为bigTextLabelsmallTextLabel的标签属性)

和开发者交流更多问题细节吧,去 写回答
相关文章
ios开发中解决UILabel上文字不能右对齐的问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/80591908
用户1451823
2018/09/13
2.2K0
ios开发中解决UILabel上文字不能右对齐的问题
UILabel加载html文本
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/53163142
用户1451823
2018/09/13
3.3K0
iOS开发 UIlabel 文字两边对齐
1、给UIlabel添加一个分类即可,代码如下: 必须导入这个头文件:CoreText/CoreText.h - (void)changeAlignmentRightandLeft{ CGRect textSize = [self.text boundingRectWithSize:CGSizeMake(self.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTr
czjwarrior
2018/05/28
2.2K0
不同浏览器下兼容文本两端对齐
在 form 表单的前端布局中,我们经常需要将文本框的提示文本两端对齐,例如: 比较粗暴的做法是在需要隔离边距的文本中加标签,然后分别控制每个文字的边距,这种方法比直接加空格或者占位符更精准,我之前
捷义
2018/05/14
1.8K0
不同大小的文字底部对齐,为什么不能使用flex-end
flex容器下,不同大小的文字底部对齐,为什么应该使用 baseline 而不是 flex-end?
扰乱
2023/10/24
1.6K0
不同大小的文字底部对齐,为什么不能使用flex-end
文本左右对齐
给定一个单词数组 words 和一个长度 maxWidth ,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。
狼啸风云
2023/10/10
5020
文本左右对齐
如何在 Linux 中查看目录大小?
这是一篇关于如何通过一些常用的命令,显示 CentOS 或 RedHat 中的 Linux 目录大小,以及哪些文件夹占用的空间最大的教程。
章鱼猫先生
2021/10/15
14.2K0
如何在 Linux 中查看目录大小?
如何在不同的操作系统里保存同样大小的matplotlib图片?
One of our tests is failing because the output image is sometimes a slightly different size. On Linux it is 579x517 pixels and on Windows it is 582x520 pixels. I have checked the versions of matplotlib and pandas and they are the same. There are slight differences in matplotlib.rcParams; I've tried changing the parameters that look relevant, but it didn't help.
气象学家
2021/05/20
9020
如何在不同的操作系统里保存同样大小的matplotlib图片?
Python修改文本列对齐
letter                   ->              LadderScore0                   ->        LadderScore1                   ->        LadderScore2                   ->        LadderScore3                   ->        LadderScore4                   ->        LadderScor
py3study
2020/01/15
2.7K0
Python修改文本列对齐
IOS UILabel
let rect = CGRect(x:20, y:100, width:280, height:80) let label = UILabel(frame:rect) label.text = “Hello, Xcode and Swift 3!” let font = UIFont(name:“Arial”, size:24) label.font = font label.textAlignment = NSTextAlignment.right label.textColor = UIColor.purple label.backgroundColor = UIColor.yellow self.view.addSubview(label)
用户5760343
2019/07/08
5830
[Leetcode][python]Text Justification/文本左右对齐
来自:https://shenjie1993.gitbooks.io/leetcode-python/068%20Text%20Justification.html 把一个集合的单词按照每行L个字符存放,不足的在单词间添加空格,每行要两端对齐(即两端都要是单词),如果空格不能均匀分布在所有间隔中,那么左边的空格要多于右边的空格,最后一行靠左对齐,每个单词间一个空格。
蛮三刀酱
2019/03/26
2K0
LeetCode - #68 文本左右对齐
我们社区陆续会将顾毅(Netflix 增长黑客,《iOS 面试之道》作者,ACE 职业健身教练。)的 Swift 算法题题解整理为文字版以方便大家学习与阅读。
Swift社区
2022/12/10
1.2K0
68. 文本左右对齐
给定一个单词数组和一个长度 maxWidth,重新排版单词,使其成为每行恰好有 maxWidth 个字符,且左右两端对齐的文本。
张伦聪zhangluncong
2022/10/26
1.2K0
PyQt5 技术篇-设置alignment对齐方式。Qt Designer设置文本对齐方式。居中、左对齐、右对齐、上对齐、下对齐。
通过alignment设置,展开后可以设置水平方向或垂直方向的对齐方式。 PyQt5设置文本对齐方法: self.label.setAlignment(QtCore.Qt.AlignRight|QtCore.Qt.AlignVCenter) 两个参数一个是横向靠右,一个是纵向居中。
小蓝枣
2020/09/23
9.4K0
UILabel在开发中的常用功能总结
在项目开发中,我们经常会遇到在这样情形: 1、在一个UILabel 使用不同的颜色或不同的字体来体现字符串 在iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的attributedText, 使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText 和 NSMutableAttributedText 类来实现。
Python疯子
2018/09/06
1.1K0
UILabel在开发中的常用功能总结
如何在 Helm Chart 中兼容不同的 Kubernetes 版本?
随着 Kubernetes 的版本不断迭代发布,很多 Helm Chart 包压根跟不上更新的进度,导致在使用较新版本的 Kubernetes 的时候很多 Helm Chart 包不兼容,所以我们在开发 Helm Chart 包的时候有必要考虑到对不同版本的 Kubernetes 进行兼容。
我是阳明
2021/11/17
1.7K0
如何在 Discourse 中批量移动主题到不同的分类中
例如,我们需要将下面的主题批量从当前的分类中移动到另外一个叫做 数据库 的分类中。
HoneyMoose
2021/07/23
1.6K0
如何在 Discourse 中批量移动主题到不同的分类中
水晶报表文本在web中无法两端对齐
        在Web上利用水晶报表显示一段文本,用的是动态加载rpt的方法,结果出来的文本效果如下:         右边很不齐,于是回到水晶报表10程序中调rpt,很快,把文本的对齐方式设为两
用户1075292
2018/01/23
2.9K0
水晶报表文本在web中无法两端对齐
点击加载更多

相似问题

UILabel中有多行文本?

2292

Android 动态创建按钮 不同按钮文本居中,但文字首字符对齐?

023

Bootstrap - 内部表的文本对齐类?

2399

如何将文本垂直对齐?

2284

请问如何在页眉部分的一行中创建左对齐的页眉,居中对齐的页眉,右对齐的页眉呢?

0101
相关问答用户
新浪微博 | 高级总监擅长4个领域
到家集团 | 技术VP擅长5个领域
擅长5个领域
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档