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

你如何在一个UITextView(Xcode)中有两种字体?

在一个UITextView中使用两种字体,您可以使用NSAttributedString来实现。以下是一个简单的示例,展示了如何在UITextView中使用两种不同的字体:

  1. 首先,导入UIKit框架:
代码语言:swift
复制
import UIKit
  1. 在您的UITextView代码中,创建一个NSMutableAttributedString,并设置其中的文本和字体:
代码语言:swift
复制
let textView = UITextView()

let attributedText = NSMutableAttributedString(string: "这是一个使用两种字体的UITextView示例。")

let firstFont = UIFont.systemFont(ofSize: 18)
let secondFont = UIFont.italicSystemFont(ofSize: 16)

attributedText.addAttribute(.font, value: firstFont, range: NSRange(location: 0, length: 5))
attributedText.addAttribute(.font, value: secondFont, range: NSRange(location: 5, length: 11))

textView.attributedText = attributedText

在这个示例中,我们创建了一个NSMutableAttributedString,并为其设置了两种不同的字体。第一种字体是系统字体,大小为18,第二种字体是斜体,大小为16。然后,我们使用addAttribute方法为不同的字体范围添加属性。最后,将attributedText设置为UITextView的attributedText属性。

这样,在UITextView中,您就可以使用两种不同的字体了。您可以根据需要调整字体大小、样式和颜色。

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

相关·内容

  • IOS本地化应用

    MainVC.xib(German) 和 MainVC.xib(English)。但这样做未免过于繁杂,像人们常说的 tedious and useless....(2)冻结UI 在应用开发的周期中必需要有一个明白的时间点来冻结UI。在此之后要坚决杜绝会影响本地化的资源变更。nib 文件能够在XCode中锁定。...(4)版本号控制用版本号控制系统记录下的每一次变更。 (5)測试不用怎么说,必需要的步骤。 (6a)合并逻辑变更逻辑变更一般不会影响到nib文件和本地化的工作。...这里就不在赘述了,直接贴出本人读过的认为还不错的文章: 1、MJ 的应用程序本地化,2013年写的,对于XCode5,有些操作界面已经不一样了,但思想是不变的。...对 UILabel、UIButton、UITextField 的字体大小做了一下自适应。

    89200

    输入框高度随输入内容变化

    实现这个效果的关键点只有两点: 获取正在输入内容在UITextView占用了多少行 让UITextView动态改变大小 一开始,为了解决第一个问题,我一直在考虑怎么获取换行事件,发现只用捕捉\n输入即可...所以感觉这个思路太麻烦 对于第一点,有一个方便的计算方法,就是获取UITextView内容的高度比上UITextView字体的高度,即可得到当前的行数。...这里有一个技巧,那就是不要用UITextView的bound.size.height获取其高度,因为这个获取的高度跟你输入的文字总高度并没有任何关系。...NS_CLASS_AVAILABLE_IOS(2_0) @interface UITextView : UIScrollView 这一点可以不知道,但根据平时的操作经验,一个...按我以前的经验,行高差不多是字体大小的 4/3 倍.这样设值显示效果一般都挺好。所以可以设值一个宏定义来处理与字体相关的高度。

    2.5K10

    【IOS开发基础系列】UITextView专题

    行数限制:输入字符后,判断是否会超过限制行数 - (BOOL) textView: (UITextView *)textView shouldChangeTextInRange:(NSRange)range...返回值         一个矩形,大小等于文本绘制完将占据的宽和高。 讨论         可以使用该方法计算文本绘制所需的空间。size 参数是一个constraint,用于在绘制文本时作为参考。...(由于一个 bug,在 iOS6中,宽度会被忽略) 兼容性      iOS 6.0 以后支持。 声明于     NSStringDrawing.     ...(译者注:字体大小+行间距=行距)     NSStringDrawingUsesDeviceMetrics:         计算布局时使用图元字形(而不是印刷字体)。         .../questions/2454067/display-html-text-in-uitextview 一文让彻底了解iOS字体相关知识 http://ios.jobbole.com/83939/?

    42340

    史上最全的iOS之UITextView实现placeHolder占位文字的N种方法

    但是,众所周知,UITextField中有一个placeholder属性,可以设置UITextField的占位文字,起到提示用户输入相关信息的作用。...可是,UITextView就没那么幸运了,apple没有给UITextView提供一个类似于placeholder这样的属性来供开发者使用。...比如,现在市面上的app大多都有一个用户反馈的入口,如下图(一)所示。下面我就把自己能够想到的方法汇总一下,让更多的开发者知道,原来有这么多方法可以实现UITextView的占位文字。 ?...5.重写drawRect:方法 6.重写相关属性的set方法 特点:相比计较上面两种方法,这种方法可移植性、拓展性更好,这种方法,不仅乐意随意通过我们添加的placeholder属性设置默认文字,...今后,我们只需要写好这么一个自定义UITextView,就可以一劳永逸。

    10.5K40

    Git在Xcode中的配置与使用常见问题总结

    书接上回提出的Git在Xcode中的配置与使用常见问题4个问题 问题1,如何在Xcode中创建代码库,并添加和提交代码到代码库? 问题2,如何在Xcode中提交推送给远程服务器代码库?...问题3,如何在Xcode中克隆远程服务器代码库到本地? 问题4,如何使用Xcode获取远程代码库数据,并解决冲突问题?...1、问题1 创建代码库有两种方式,一种是新建工程时候创建,另一种是把现有的工程拷贝到代码库下,再初始化代码库。...3、问题3 这 个问题是从服务器代码库克隆到本地,首先需要在Xcode中添加一个远程代码库,需要通过菜单Window → Organizer进入到Repositories画面,点选左下角的“+”按钮,选择...注意有空格 提交标注 git commit -m "标注" 添加远程分支(两种类型,换成的) git remote add origin git@git.oschina.net:superYou/

    3.6K110

    编码篇-iOS开发中的奇巧小伎

    9.动态方法的动态执行 10.isKindOfClass和isMemberOfClass的区别 11.Label字体大小 12.为UIView某个角添加圆角 13.将一个view放置在其兄弟视图的最上面...、最下面 14.让手机震动一下 15.摇一摇功能 16.修改UISegmentedControl的字体大小 17.获取一个view所属的控制器 18.UIImage和base64互转 19.检查一个rect...,(通知,定位等)。...1、找到你想用的字体的 ttf 格式,拖入工程 2、在工程的plist中增加一行数组,“Fonts provided by application” 3、为这个key添加一个item,value为刚才导入的...image 46、将一个xib添加到另外一个xib上 // 假设的自定义view名字为CustomView,需要在CustomView.m中重写 `- (instancetype)initWithCoder

    5.4K10

    iOS导航栏使用总结

    就不需要触发滑动手势, return NO; } return YES; } @end 三、隐藏导航栏底部的分割线 隐藏导航底部分割线也是我们偶尔会遇到的开发需求,首先我们可以通过Xcode...导航栏视图层级图 从图中可以看出,导航栏的底部分割线是一个UIImageView对象,而且高度只有0.5,所以我们可以据此获取到导航栏的底部分割线对象,在一个视图控制器中实现此需求,代码如下: #import...我们可以通过一段代码来测试一下效果,在默认导航栏(半透明)的视图控制器里添加如下代码: //UITextView是滑动视图,内容自动向下偏移,不会被导航栏覆盖 UITextView *leftTextView...君不见,高堂明镜悲白发,朝青丝暮成雪。人生得意须尽欢,莫使金樽空对月。天生我材必有用,千金散尽还复来。"...self.edgesForExtendedLayout=UIRectEdgeNone 3.导航栏透明属性translucent 上述两种属性都是在解决导航栏半透明情况下的布局问题,但是如果我们的需求就是导航栏不透明

    3.2K20

    图文混排

    Core Graphics/Quartz几乎允许做任何系统允许的事情,但需要为每个字形计算位置,并画在屏幕上。 Core Text 正结合了这两者!...可以完全控制位置、布局、类似文本大小和颜色这样的属性,而 Core Text 将帮你完善其它的东西——类似文本换行、字体呈现等等。...4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时的几何区域,每个text container与一个具体的UITextView相关联。...如果需要定义一个很复杂形状的区域来显示文本,可能需要创建NSTextContainer子类。 每个文本视图定义了一个文本可以绘制的区域。...5、UITextView UITextView作为显示出来的实际的文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制的视图。

    1.5K30

    iOS学习——键盘弹出遮挡输入框问题解决方案

    自动弹出),并且系统会根据需要发出UIKeyboardWillShowNotification 和UIKeyboardDidShowNotification的Notification通知,而如果此时系统中有其他的输入视图是可视的...关于收起键盘,我们通常有两种做法如下: 一是通过我们的键盘上的【return/完成】按键的点击事件来设置 二是设置点击空白处就收起键盘,这种方法现在比较普遍   这两种做法在UITextField和UITextView...上的实现在我之前的随笔中有专门讲到过了,想了解的小伙伴可以直接戳这里:ios学习——键盘的收起 三 文本框内容的获取   在之前的分析中,我们知道,文本框在结束之后都会调用一个方法就是  textFieldDidEndEditing...如果我们开发过程中一个页面有多个相同类型的输入文本框,我们可以通过设置不同的tag来区分当前的是哪一个输入文本框,从而进行不同的处理,具体示例如下: - (void)textViewDidEndEditing...CGSize kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size; //140是文本框的高度,如果的文本框高度不一样

    3.6K60

    iOS9系列专题6——iOS9其他适配注意点 原

    具体的做法在这篇博客中有详细的讲解:http://my.oschina.net/u/2340880/blog/414760。         ...首先,我们创建一个测试工程,什么都不用做,只需要添加一个URL Scheme: ?...五、label默认字体不同产生的BUG         iOS9的另一变化是label的默认字体产生了变化,我们打印iOS9中label的字体如下: ? iOS8中的label默认字体如下: ?...这两种字体的最大差异是字间距不同,例如如下一段代码:     UILabel * label = [[UILabel alloc]init];     label.frame=CGRectMake(100...适配注意点: 1、可以通过动态计算来获取label的宽度,进行设置label的宽度 2、一个更简单的方法是通过设置一个确定的字体,来进行适配 专注技术,热爱生活,交流技术,也做朋友。

    44830

    iOS——配适深色模式

    首先,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要没有针对颜色等内容特殊设置过,都会自动适配深色模式,这部分是我们开发者不需要去关心的...这些类都拥有一个叫做 traitCollection 的属性,traitCollection里面有一个userInterfaceStyle属性,而颜色模式就是存在 userInterfaceStyle...UIColor purpleColor]; } }]; self.view.backgroundColor = color; (滑动显示更多) 除了这个API,我们还可以通过Xcode11...colorNamed:@"testColor"]; (滑动显示更多) 图片 如果你想在普通模式和深色模式下展示不同的照片,那也可以利用xcassets 中图片新增的 Apperance 属性,分别设置两种模式下所使用到的图片...h5界面适配深色模式 如果工程中有嵌套h5界面,那h5界面的内容可能也需要做深色模式的适配。 可以使用prefers-color-scheme来指定深色模式和浅色模式下的css样式。

    1.6K10

    UITableViewCell系列之(一)让的cell支持二次编辑

    这只是一个开头,关于UITableViewCell的一些特殊的用法,我还会继续在这个系列中更新。 如果觉得按照步骤一步一步读下去浪费时间,喜欢直接看代码请点击。...每个开发者采用的方式不同,有的开发者直接以modal/push的方式present出一个控制器,把tableViewCell上的内容传递到被modal/push的控制器的UITextView上,在UITextView...另外一种方法是直接在当前控制器(的界面)上以动画(甚至是没有动画)的形式弹出一个UITextView,在UITextView上修改文本内容,修改完成后再隐藏/移除UITextView,把内容重新显示到tableView...做的好的同学,可能还不忘弹出UITextView的时给tableView添加一个蒙版或者模糊效果以突出重点,提高用户的体验度。以上的两种方式算是中规中矩。...label同样尺寸、同样坐标的UITextView,以让UITextView正好遮盖住label 把cell上的内容显示到UITextView上。

    7.8K40

    Objective-C 中 9 种避免使用 Xcode 预处理器宏的方法

    这是一个可以在终端运行的便捷命令。它可以检查并显示当前目录下的源文件,预处理器宏的使用情况,应该仔细检查。 find . \( \( -name "*....除非您的自定义宏依赖于 Xcode 预处理器宏(__LINE__),否则请将其重写为一个独立函数。(即便依赖于 Xcode 预处理宏,也要让您的宏调用另一个函数,并尽可能多地转移到该函数中)。...因此,.h 文件中将包含如下声明: extern const NSTimeInterval JMRTimeoutInterval; .m文件中有定义: const NSTimeInterval JMRTimeoutInterval...或者你想快速在两种方法之间来回切换。这很好。 但在某些时候,我们会做出决定。实验方法得到验证,就可以准备发货了。自行清理之后!除非有重要的历史原因需要将被拒绝的代码作为注释保留,否则请将其删除。...如果的代码中存在多个特定于平台的子类层次结构,可能会发现使用桥接模式的机会。 避免使用 Xcode 预处理器宏! 请再次在终端中执行此命令,以查找代码中可能违规的 Xcode 预处理器宏。

    12410

    iOS表情键盘的完整实现

    但是要把用户体验做的好也是不容易的,其中有几个点需要特别注意。话不多说,下面开始正文(注:本文对应的Demo放在Github上:github.com/VernonVan/P…)。...,用一个plist作为配置文件,存储表情包的信息。...转成 "笑死了[笑哭]" 这样的纯文本,而不是直接把表情图片直接发到服务端,也就是说项目中有大量的地方会有把文本->表情的操作,所以PPStickerDataManager类也提供匹配某段纯文本中的表情...emoji有本地图片的话会直接换成本地的图片 * * @param attributedString 可能包含表情包的attributedString * @param font 表情图片的对齐字体大小...也就是说,我们设置到输入框的NSAttributedString中的每一个NSTextAttachment都有一个"隐藏的"属性—表情的文本描述,这里对NSAttributedString进行拓展就能实现

    2K30

    iOS 文本输入控制(献上框架)

    于是,我写下这篇文章,总结一下关于UITextField和UITextView输入控制的那些事儿,并且还献上一个框架。...三、YBInputControl 框架解读(难点是方法重定向) DEMO地址带用法 首先,为了减少耦合,使用了分类的方式,给UITextField和UITextView添加了一个属性: @interface...若+resolve...方法返回NO,runtime会走-forwardingTargetForSelector:方法允许返回一个方法接受者(意味着可以更改方法接受者)。...aSelector是否是我们需要转发的代理,若不是,那么继续走默认逻辑,若是,就判断实际需要回调的两个对象self.delegate_inside和self.delegate_outside是否实现了当前方法,若其中有一个实现了...而且其父类是UIScrollView,UIScrollView中有着delegate属性,在UITextView的setDelegate:中肯定会有着对父类代理的操作,这里面的逻辑不得而知,所以这里不能使用代理转接的思路强行插入逻辑

    1.1K120
    领券