首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使用核心文本在ios中不同UIlabel文本行设置不同字体样式

在iOS中,可以使用NSAttributedString和NSMutableAttributedString来实现在不同UILabel文本行中设置不同的字体样式。

首先,我们需要创建一个NSMutableAttributedString对象,并为每个文本行设置不同的属性。可以使用addAttribute方法来添加属性,例如字体样式、字体大小、字体颜色等。

下面是一个示例代码,演示如何使用核心文本在iOS中不同UILabel文本行设置不同字体样式:

代码语言:swift
复制
// 创建一个NSMutableAttributedString对象
let attributedString = NSMutableAttributedString(string: "Hello World!")

// 设置第一行文本的字体样式和大小
let firstLineRange = NSRange(location: 0, length: 5)
let firstLineAttributes: [NSAttributedString.Key: Any] = [
    .font: UIFont.boldSystemFont(ofSize: 16),
    .foregroundColor: UIColor.red
]
attributedString.addAttributes(firstLineAttributes, range: firstLineRange)

// 设置第二行文本的字体样式和大小
let secondLineRange = NSRange(location: 6, length: 6)
let secondLineAttributes: [NSAttributedString.Key: Any] = [
    .font: UIFont.italicSystemFont(ofSize: 14),
    .foregroundColor: UIColor.blue
]
attributedString.addAttributes(secondLineAttributes, range: secondLineRange)

// 创建一个UILabel对象,并将NSMutableAttributedString赋值给它的attributedText属性
let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 100))
label.attributedText = attributedString

在上面的示例中,我们创建了一个NSMutableAttributedString对象,并使用addAttribute方法为每个文本行设置了不同的字体样式和颜色。然后,我们创建了一个UILabel对象,并将NSMutableAttributedString赋值给它的attributedText属性,这样就可以在不同的文本行中显示不同的字体样式了。

这种方法可以用于各种场景,例如在聊天应用中对发送和接收的消息进行样式区分,或者在新闻应用中对标题和正文进行样式区分等。

腾讯云相关产品和产品介绍链接地址:

请注意,以上链接仅供参考,具体产品和服务详情请访问腾讯云官方网站获取最新信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

iOS UI控件了解一下

UIWindow widow是窗口,每个app都需要借助window将内容展现给用户看,iOS使用UIWindow类来表示窗口,通常一个应用程序只创建一个UIWindow对象; 创建window示例代码...iOS中用UIView来表示视图,App能看到的元素,都是UIView及其子类,通俗的说各种UI控件都属于view,不同的控件代表不同种类的view。iOS中所有能看到的内容都是view或其子类。...UILabel 1)UILabel是什么? (1)UILabel(标签):是显示文本的控件,AppUILabel是出现频率最高的控件。...(1)创建UILabel与创建UIView的步骤很相似。 ①开辟空间并初始化(如果本类有初始化方法,使用自己的;否则使用父类的)。 ②设置文本控制相关的属性。...AppUIButton是出现频率很高的控件; (2)UIButton与UILabel、UITextField侧重点不同,侧重于处理点按。当然UIButton类也提供了一些方法控制按钮外观。

2.6K20

UI篇-CATextLayer和 富文本的交融

而NSMutableAttributedString有可以最自己内容作出颜色以及大小的调整,这样结合起来使用的话,就远比UILabel 灵活的多,效果也酷炫的多,也许CATextLayer就是为了NSMutableAttributedString...[self.view.layer addSublayer:lary]; /* @property CGFloat contentsScale; 使用CATextLayer设置文本,可能会产生模糊状态,...使用通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。有属性的控件有UILabel、UITextField和UITextView。...,我想你一定用不到它 - - //NSVerticalGlyphFormAttributeName 水平或者竖直文本 1竖直 0水平 iOS没卵用,不支持竖版 2.设置段落样式:段落样式中允许你设置文字与文字之间的行间距...、字符间距、以及对齐模式,但是注意的是,设置段落样式的时候,必须保证控件的 numberofline属性必须为0 NSMutableAttributedString* str2 = [[NSMutableAttributedString

2.4K10

1.注册或登录页面设计:UILabel,UIButton,UITextField

学习iOS开发已经有一段时日了,之前一直没有系统的对iOS开发的相关知识进行归纳总结,导致很多知识点云里雾里脑子里形不成iOS开发的思想,现将自己在学习过程遇到的一些知识进行总结,希望能对iOS初学者能有一定的帮助...说明: 这里为了展现UITextField的文本框关联键盘的设置,这里把“密码”和“确定密码”的关联键盘都设置为数字键盘,实际应用密码一般都允许为数字或字母。 实现了键盘收回操作。...UILabel文本的行数,其属性值默认为1,用于设置UILabel只能显示一行文本。...//设置输入框内容的字体样式和大小 text.font = [UIFont fontWithName:@"Arial" size:20.0f]; //设置字体颜色 text.textColor =...YES时文本会自动缩小以适应文本窗口大小.默认是保持原来大小,而让长文本滚动 textFied.adjustsFontSizeToFitWidth = YES; //设置自动缩小显示的最小字体大小 text.minimumFontSize

2.3K50

iOS如何正确的实现行间距与行高

关于行间距 lineSpacing 先贴出一张 iOS UILabel 的默认排版样式: ? 大家也都能看出来,默认的排版样式文本的行间距很小,显得文本十分挤。...答案是 label.font.lineHeight,它是使用指定字体绘制单行文本的原始行高。...左侧是 iOS 设备,右侧 Android 设备,可以看到同样是显示 20 号的字体,安卓的行高会偏高一些。不同的 Android 设备上使用字体不一样,可能还会出现更多的差别。... debug 模式下确认了下文本的高度的确正确的,但是为什么文字都显示了行底呢? 修正行高增加后文字的位置 修正文字在行展示的位置,我们可以用 baselineOffset 属性来搞定。...好在我们通常是行高和行间距针对不同的需求分别独立使用的,它们分开使用时不会触发这个问题。所以 VirtualView-iOS 库,我暂且将高度计算的逻辑保持和系统一致了。

3.8K30

文本AttributedString的总结

使用通过将AttributedString赋值给控件的 attributedText 属性来添加文字样式。 可设置的控件有UILabel、UITextField和UITextView。.../* 注:NSLigatureAttributeName设置连体属性,取值为NSNumber对象(整数),1表示使用默认的连体字符,0表示不使用,2表示使用所有连体符号(iOS不支持2)。...NSVerticalGlyphFormAttributeName 设置文字排版方向 取值为NSNumber对象(整数),0表示横排文本,1表示竖排文本 iOS只支持0 */ NSString...属性单独列出来,是因为 UILabel 和 UITextField 是无法使用该属性的。...更准确点说是UILabel 和 UITextField 无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView

3.2K20

UILabel开发的常用功能总结

项目开发,我们经常会遇到在这样情形: 1、一个UILabel 使用不同的颜色或不同字体来体现字符串 iOS 6 以后我们可以很轻松的实现这一点,官方的API 为我们提供了UILabel类的...attributedText, 使用不同颜色和不同字体的字符串,我们可以使用NSAttributedText 和 NSMutableAttributedText 类来实现。...iOS UILabel显示不同字体和颜色"; labelStr.textColor = [UIColor lightGrayColor]; labelStr.font = [UIFont systemFontOfSize...NSMutableAttributedString alloc]initWithString:[NSString stringWithFormat:@"AAA:%@", labelStr.text]]; // 设置指定区域字体颜色...addAttribute:NSForegroundColorAttributeName value:[UIColor blueColor] range:NSMakeRange(0, 4)]; // 设置指定区域字体样式和大小

90720

产品设计之动态字体大小

而微信的字体大小并不会随系统的字体大小改变而改变,微信自己有设置文字大小的功能,“我” –> “设置” –> “通用”-> “字体大小”中进行设置 ?...iOS如果想做到跟随系统默认的字体大小改变而改变,怎么实现呢,步骤如下: 1、设置字体的新式为UIFontTextStyle某个选项; 2、注册通知,监听字号改号改变时修改字体然后重新更新一下布局;...动态字体DynamicType的实现(1) [2]动态字体,根据系统设置调整APP字体大小 [3]一让你彻底了解iOS字体相关知识 iOS如果想实现字体大小随UILabel的宽度进行自适应,可使用adjustsFontSizeToFitWidth...,更多详情可参考这篇文章:详解UILabel的adjustsFontSizeToFitWidth值 Android默认是跟随系统字体大小改变而改变的,那如果想避免受系统字体大小的影响,如何处理(4.0开始...react-native/docs/text.html#allowfontscaling http://reactnative.cn/docs/0.31/text.html#allowfontscaling 而如果你想根据不同的屏幕大小使用不同的字号

1.6K30

Ios常用第三方框架(一)

至少storyboard创建时会喜欢。 代码纯手工创建约束灰常痛苦,但幸运的是我们有了SnapKit,board中用上它,你可以简单直观地编写约束了。...Cartography - Cartography 是用来声明 Swift 的 Auto Layout,无需输入任何 stringly 就可设置自己 Auto Layout 的约束声明。...FXLabel - FXLabel是一个功能强大使用简单的类库,通过提供一个子类改进了标准的UILabel组件,为字体增加了阴影、内阴影和渐变色等,可以被用在任何标准的UILabel。...FXLabel还提供了更多控件,可以对字体行距、字体间距等进行调整。 WFReader - 一款简单的coretext阅读器,支持文本选择、高亮以及字体大小选择等。...KMPlaceholderTextView - 可显示多行 placeholder 的 textView,可以IB里面设置 -- swift。

5.4K31

Flutter的文本、图片和按钮使用

作为UI框架,与Android、iOS和React类似,Flutter也提供很多UI控件。而文本、图片和按钮则是这些不同UI框架构建视图都要用到的最基本控件。...1 文本控件 文本是视图系统的常见控件,用来显示一段特定样式的字符串,就比如Android里的TextView、iOSUILabel。而在Flutter文本展示是通过Text控件实现的。...,如字体名称fontFamily、字体大小fontSize、文本颜色color、文本阴影shadows等等,这些参数被统一封装到了构造函数的参数style 展示单一样式文本Text 居中布局、20号红色粗体展示样式的字符串...: Text( '文本是视图系统的常见控件,用来显示一段特定样式的字符串,就比如Android里的TextView,或是iOSUILabel。'...与单一样式的关键区别在于分片,即如何把一段字符串分为几个片段,给每个片段单独设置样式: Android中使用SpannableString实现 iOS使用NSAttributedString来实现

40420

文字如何实现完美UI?文本排版设计告诉你

实际上,不同类型的文本内容需要使用不同字体字体可以表达内心感觉和心理需求。试想,使用浓密生硬的字体女性色彩的读物内容里,是不是显得格格不入?相反,你应该选择比较细腻和柔和的字体。...对于iOS使用至少11sp的字体大小,而对于Android,请选择14 sp为主文本。请注意,这是主文本通常使用的标准,不是强行的唯一标准。...例如, iOS 7使用了(Pro)Light,iOS 9使用SF-UI,而在iOS 10,San Francisco的字体版本是SF UI Text 和 SF UI Display。 ? 10....文本样式 尽可能使用内置文本样式。内置的文字样式可让您以视觉上独特的方式表达内容,同时保持最佳的易读性。...原型设计 版排版设计很多设计范围类都至关重要,原型设计也是必不可少,优秀的文本排版,能够和其他元素组件共同服务于干净的UI界面。但在原型设计文本不需要具备真正的意义。

2.5K70

关于flutter的TextStyle详解

如果字体定义的,那么它将以'packages / package_name /'为前缀(例如'packages / cool_fonts / Roboto') double fontSize 字体大小...double height 文本行与行的高度,作为字体大小的倍数(取值1~2,如1.2) Locale locale 此属性很少设置,用于选择区域特定字形的语言环境 Paint background 文本背景色...省略时,文本使用最接近的DefaultTextStyle的样式。如果给定样式的TextStyle.inherit属性为true(默认值),则给定样式将与最接近的DefaultTextStyle合并。...例如,这种合并行为很有用,可以使用默认字体系列和大小时使文本变为粗体。...TextAlign.justify 拉伸以结束的文本行以填充容器的宽度。即使用了decorationStyle才起效 TextAlign.left 对齐容器左边缘的文本

1.8K30

关于flutter的TextStyle详解

如果字体定义的,那么它将以'packages / package_name /'为前缀(例如'packages / cool_fonts / Roboto') double fontSize 字体大小...double height 文本行与行的高度,作为字体大小的倍数(取值1~2,如1.2) Locale locale 此属性很少设置,用于选择区域特定字形的语言环境 Paint background 文本背景色...省略时,文本使用最接近的DefaultTextStyle的样式。如果给定样式的TextStyle.inherit属性为true(默认值),则给定样式将与最接近的DefaultTextStyle合并。...例如,这种合并行为很有用,可以使用默认字体系列和大小时使文本变为粗体。...TextAlign.justify 拉伸以结束的文本行以填充容器的宽度。即使用了decorationStyle才起效 TextAlign.left 对齐容器左边缘的文本

2.9K10

iOS坐标系探究

正文 我们先从一段最简单的代码入手,drawRect显示一个普通的UILabel; 为了方便判断,我把整个view的背景设置成黑色: - (void)drawRect:(CGRect)rect {...,然后设置文本,显示到屏幕上,没有修改坐标。...所以按照UILabel.layer默认的坐标(0, 0),左上角进行了绘制。 接着,我们尝试使用CoreText来渲染一段文本。...从这个不同的现象开始,我们来理解iOS的坐标系。 坐标系概念 iOS绘制图形必须在一个二维的坐标系中进行,但在iOS系统存在多个坐标系,常需要处理一些坐标系的转换。...图形上下文包含绘制所需的信息,比如颜色、线宽、字体等。用我们Windows常用的画图来参考,当我们使用画笔白板写字时,图形上下文就是画笔的属性设置、白板大小、画笔位置等等。

2.7K30

文本、图片和按钮Flutter怎么用

iOS、Android和React类似,作为一个UI框架,Flutter自然也提供了很多UI控件。而文本、图片和按钮,则是这些不同的UI框架构建视图都要用到的三个最基本的控件。...我们先来看看如何使用单一样式文本 Text。 单一样式文本Text的初始化,是需要传入要展示的字符串。而这个字符串的具体展示效果,受构造函数的其他参数控制。...控制文本展示样式的参数,如字体名称 fontFamily、字体大小 fontSize、文本颜色 color、文本阴影 shadows 等等,这些参数被统一封装到了构造函数的参数 style。...理解了单一样式文本Text的使用方法后,我们再来看看如何在一段字符串中支持多种混合展示样式。...面对这样的需求,Android,我们使用 SpannableString来实现;iOS,我们使用NSAttributedString来实现;而在Flutter中国也有类似的概念,即TextSpan

7.6K20

iOS UILabe及UIFont用法总结 原

初始化一个UILabel对象,并初始化大小 UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)...)fontDescriptor NS_AVAILABLE_IOS(7_0); 设置字体颜色 label.textColor=[UIColor redColor]; 设置阴影偏移量 label.shadowOffset...NSLineBreakByCharWrapping,    //简单线性处理    NSLineBreakByClipping,    //丢失的开头用省略号表示    NSLineBreakByTruncatingHead,    //丢失的文本末尾显示省略号...   NSLineBreakByTruncatingTail,    //丢失的文本中间显示省略号    NSLineBreakByTruncatingMiddle };typedef NSUInteger... NSLineBreakMode 使用attributedText绘制 @property(nonatomic,copy)   NSAttributedString *attributedText  设置高亮的字体颜色

99930

iOS 开发】iOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

: Text 属性下面有一个文本框, 在这个文本输入要显示的文本内容; (2) Color 属性 Color 属性 : 控制 UILabel 文本颜色; (3) Font 属性 Font...右对齐; (5) Lines 属性 Lines 属性 :  -- 作用 : 控制 文本行数; (6) Behavior 属性 Behavior 属性 :  -- Enabled : 控制 UILabel...Size : 设置最小的字号大小, 设置的值是字体大小; -- Tighten Letter Spacing : 勾选该复选框 会自动压缩字符串的空白, 保证 UILabel 能容纳这些文本的内容...@property 定义的属性, UIViewController.m 不需要 使用 @synthesize 设置 setter getter 方法; -- 查看连接关系 : 使用 Xcode...IOS 图标设置 IOS 图片设置 : 直接从文件目录将图片拖动到 Xcode 相应的设置. -- 设置图标 : 项目文件视图中, 点击 Images.xcassets, 选中左侧的 AppIcon

4.8K30

MNKit - 业务开发简化属性设置的工具类

made in 小蠢驴的封面 背景:目前的iOS环境,相信大部分的人都还是做的业务开发,一个好的工具类,可以极大的提供开发效率,简化繁琐的设置步骤。...接下来,简单介绍一个我实际开发抽取出来的工具类 - MNKit MNButton 业务开发,UIButton控件应该算最常用的控件之一了,而且它的属性设置还贼麻烦,很多个都是要用 [ set...:(UIControlEvents)controlEvents; 所以接下来讲下这个控件怎么设置才能简便使用 //常见方法: UIButton *btn = [[UIButton alloc]init]...,那么比它更常见的非UILabel莫属了,和UIButton一样,UILabel很常见,又经常有许多属性需要设置 - 字体大小、颜色、内容等等 //快速设置内容,文字颜色,字体大小,父控件 [MNLabel...进行二次封装的,设置完默认的主题(文本颜色、背景色、显隐动画。。。)

1.6K80

【封装富文本API,采用block实现链式编程】(block 的妙用:结合block和方法的优点实现iOS的链式编程)

文章目录 前言 核心思想 具体的实现步骤 I 、使用方法 II、实现细节 2.1 使用宏进行block属性的声明 2.2 代码 see also 前言 block 的妙用:结合block和方法的优点实现...iOS的链式编程 -【 完整pod 仓库源码GitHub】 主要针对段落样式NSMutableParagraphStyle和富文本NSMutableAttributedString进行封装 代码效果 xx.kn_addString...设置下划线/删除线为细的双线 // NSUnderlinePatternSolid 设置下划线/删除线样式为连续的实线 // NSUnderlinePatternDot 设置下划线/删除线样式为点,...也就是虚线,比如这样:------ // NSUnderlinePatterDash 设置下划线/删除线样式为破折号,比如这样:—— —— —— // NSUnderlinePatternDashDot...设置下划线/删除线样式为连续的破折号和点,比如这样:——-——-——- // NSUnderlinePatternDashDotDot 设置下划线/删除线样式为连续的破折号、点、点,比如:——--——

82520

iOS文本尺寸自适应异步计算实现

目前市面上的非UI线程文本算高方法或多或少都有一些问题。本文通过逆向和分析UILabel的sizeThatFits方法实现来得到一个最佳的文本算高的精简方法。...从iOS官方的实现可以看出文本算高会考虑简单文本字符串、属性字符串、字体大小、最大显示行数numberOfLines、段落信息、 段落的对齐方式、断字方式、段落的首行缩进、阴影偏移等等因素。...的sizeThatFits的参数的意义。.../// @param font 指定计算时文本字体,可以为nil表示使用UILabel控件的默认17号字体 /// @param textAlignment 指定文本对齐方式默认是NSTextAlignmentNatural...numberOfLines, font, NSTextAlignmentNatural, NSLineBreakByTruncatingTail,0.0, CGSizeZero); } 下面是具体的验证测试用例(用例iOS9

1.4K40

Flutter技术与实战(4)

("Hello World"); // iOS设置文本控件展示文案为Hello World UILabel *label = (UILabel *)[self.view viewWithTag:1234...生命周期回调 ###### 帧绘制回调 经典控件(一):文本、图片和按钮 文本控件 文本是视图系统的常见控件,用来显示一段特定样式的字符串,就比如 Android 里的 TextView、iOS...,这些都是构造函数的参数; 控制文本展示样式的参数,如字体名称 fontFamily、字体大小 fontSize、文本颜色 color、文本阴影 shadows 等等,这些参数被统一封装到了构造函数的参数...Text( '文本是视图系统的常见控件,用来显示一段特定样式的字符串,就比如Android里的TextView,或是iOSUILabel。'...我们可以通过参数 theme,选择改变 App 的主题色、字体等,设置界面 MaterialApp 下的展示样式

10.7K20
领券