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

更改字体后呈现陌生字符的UITextView

UITextView是iOS开发中常用的一个控件,用于显示可编辑的多行文本。当更改字体后,UITextView可能会呈现陌生字符的问题。

这个问题通常是由于字体不兼容或缺失导致的。当我们更改UITextView的字体时,如果选择的字体在设备上不可用或者缺失,系统会尝试使用默认字体来显示文本。这可能导致文本呈现为陌生字符或方块。

为了解决这个问题,我们可以采取以下几个步骤:

  1. 确保所选字体在设备上可用:在更改UITextView的字体之前,我们应该先检查所选字体是否在设备上可用。可以使用UIFont类的fontNames(forFamilyName:)方法来获取设备上支持的字体名称列表。如果所选字体不在列表中,我们可以考虑选择其他可用的字体。
  2. 使用系统默认字体:如果所选字体不可用或缺失,我们可以选择使用系统默认字体来显示文本。可以使用UIFont类的systemFont(ofSize:)方法来获取系统默认字体。例如,let font = UIFont.systemFont(ofSize: 14)将返回一个大小为14的系统默认字体。
  3. 提供备用字体:除了使用系统默认字体,我们还可以提供备用字体来替代所选字体。可以使用UIFont类的font(withName:size:)方法来创建一个指定名称和大小的字体。如果所选字体不可用,系统将尝试使用备用字体来显示文本。

总结起来,当更改字体后呈现陌生字符的UITextView时,我们应该先检查所选字体是否在设备上可用,如果不可用,可以选择使用系统默认字体或提供备用字体来解决该问题。

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

  • 腾讯云移动应用分析(MTA):https://cloud.tencent.com/product/mta
  • 腾讯云移动推送(TPNS):https://cloud.tencent.com/product/tpns
  • 腾讯云移动直播(MLVB):https://cloud.tencent.com/product/mlvb
  • 腾讯云移动短信(SMS):https://cloud.tencent.com/product/sms
  • 腾讯云移动认证(MSA):https://cloud.tencent.com/product/msa
  • 腾讯云移动推广(ASO):https://cloud.tencent.com/product/aso
  • 腾讯云移动游戏加速(GME):https://cloud.tencent.com/product/gme
  • 腾讯云移动智能(AI):https://cloud.tencent.com/product/ai
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

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

title颜色和大小 7.统一收起键盘 8.导入自定义字体库 9.动态方法动态执行 10.isKindOfClass和isMemberOfClass区别 11.Label字体大小 12.为UIView...某个角添加圆角 13.将一个view放置在其兄弟视图最上面、最下面 14.让手机震动一下 15.摇一摇功能 16.修改UISegmentedControl字体大小 17.获取一个view所属控制器...45、使用xib设置UIView边框、圆角 46、将一个xib添加到另外一个xib上 47、处理字符串,使其首字母大写 48、获取字符串中数字 49、自动搜索功能,用户连续输入时候不搜索,用户停止输入时候自动搜索...(我这里设置是0.5s,可根据需求更改) 50、某个界面多个事件同时响应引起问题(比如,两个button同时按push到新界面,两个都会响应,可能导致push重叠) 51、修改tabBarframe...,用户停止输入时候自动搜索(我这里设置是0.5s,可根据需求更改) // 输入框文字改变时候调用 -(void)searchBar:(UISearchBar *)searchBar textDidChange

5.3K10
  • 图文混排

    你可以完全控制位置、布局、类似文本大小和颜色这样属性,而 Core Text 将帮你完善其它东西——类似文本换行、字体呈现等等。...二、CoreText CoreText绘制流程图 CFAttributedStringRef :属性字符串,用于存储需要绘制文字字符字符属性 CTFramesetterRef:通过CFAttributedStringRef...:每一行可以分为多个属性相同小段,每一个小段就是一个CTRun 先来一个简单富文本排版: 获取Context->变换坐标->设置绘制路劲->创建富文本字符串->由富文本字符串转成framesetter...4、NSTextContainer NSTextContainer描述了文本在屏幕上显示时几何区域,每个text container与一个具体UITextView相关联。...5、UITextView UITextView作为显示出来实际文本视图,在 TextKit 中,文本视图有两个目的:第一,它是文本系统用来绘制视图。

    1.5K30

    iOS文本布局探讨之一——文本布局框架TextKit浅析

    最后,将要展示NSTextContainer绑定到具体UITextView视图上。...五、关于NSLayoutManager         顾名思义,NSLayoutManager专门负责对文本布局渲染,简单理解,其从NSTextStorage从拿去展示内容,将去处理布局到NSTextContainer...内容会被布局到一个NSTextContainer中。        ...越接近1 则使用连字符进行单词换行中断概率越大 */ @property(NS_NONATOMIC_IOSONLY) CGFloat hyphenationFactor; //是否使用字体定义行距...TextKit框架中在对文本进行布局时,主要关注于3个方面: 1.字符属性,例如颜色,字体等。 2.行与段落属性,如缩进,行间距等。 3.文档属性,包括四周边距、文档尺寸等。

    1.8K10

    UITextView 手势触发 TouchesBegan 函数

    大家好,又见面了,我是你们朋友全栈君 前几天做了个手势可以改变文章字体大小功能。...,手势触摸时,其实触发是当前view重构父类touchesbegan函数,而加载UITextView时,UITextView 其实也有相应touchesbegan函数,UITextView 继承UIScrollView...所以说,当你点击UITextView想触发相应手势函数,是做不到了,因为它始终触发是当前view手势函数,明白了吧,现在来说做法。...最后,如果想要通过手势改变文章字体,图片等,如果文章较长,可能会先会滚动,从而忽略掉手势操作。...那你就需要设置下了将canCanelContentTouches 设置为NO, 多点触发multipleTouchEnabled设置为YES,delaysContentTouches设置为NO,两个必须设置

    1.1K10

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

    ---- 博客更新日志 2018年3月16日 更新:消息转发逻辑,放弃了之前代理方法转发方式,改用方法重定向实现多代理消息分发;更改了部分说明。...---- 一、痛点 我们在业务开发中,往往会遇到需要限制文本输入需求,比如只能输入数字、不能输入空格,稍微复杂一点比如小数点最多两位价格输入。当然,若你正则表达式玩儿得很溜,这些并不是难题。...但是我们仍然需要设置代理、实现代理,然后写上一堆判断逻辑,总是有一些奇奇怪怪问题导致最终结果不能很快完美呈现。...当我们设定了某些不能输入字符,就需要查找出来移除,然后若对长度有要求,还得再次判断,字符串替换过程有些复杂,而且还会造成不可控字符改变(用户可能是无意识)。...若只能输入英文、特殊字符、数字等,就将键盘索引关掉,并且将键盘种类更改,让用户不能切换到中文键盘(因为中文键盘自带索引,关不掉),方法如下: //关索引 tf.autocorrectionType =

    1.1K120

    【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)

    控件; -- UIControl 主要作用 : 定义通用接口, 为活动控件事件机制提供实现, 发生指定动作, 控件会初始化 Action 方法, 回调对应事件处理方法; -- 事件处理方法 :...; -- Plain 属性值 : 默认即可; -- Attribute 属性值 :  (4) Tittle 属性 Font 属性 : 用于控制文字 字体, 大小, 风格; (5) Text Color...UITextField 属性 (1) PlaceHolder 属性 PlaceHolder 属性 : 属性值是一个字符串, 再文本框没有输入内容时, 文本框内显示灰色文本, 用于作为文本框提示信息...:" 方法 : 用户将要开始编辑 UITextView 内容时激发该方法; -- "- textViewDidBeginEditing : " 方法 : 用户开始编辑 UITextView 内容 激发该方法...方法 : 结束编辑 UITextView 控件激发该方法; -- "- textView : shouldChangeTextInRange : replacementText : " 方法 :

    6.7K20

    iOS表情键盘完整实现

    同时微博国际版输入框表情黏贴光标定位是错误,如下图,开始时光标是在第4个表情后面,然后复制狗头+害羞两个表情黏贴到光标,光标还是在第4个表情,同时黏贴表情前后都莫名多了空格。 ?...表情图片对齐字体大小 */ - (void)replaceEmojiForAttributedString:(NSMutableAttributedString *)attributedString...在iOS11上,UITextViewNSTextAttachment(表情)默认可以进行拖拽交互,但是却导致拖动光标时很容易触发这个交互(图示可以查看上面说到微博国际版中误触)。...表情功能,UITextView都是用NSAttributedString进行赋值,并且我们底层其实还是用上面说到纯文本进行实现,那么把 [笑死] 转成 ?...就会从4个字符变成1个字符,这里是有差值,如果不处理的话就会出现上面提到微博国际版中复制黏贴输入框表情会导致光标位置不对,甚至莫名其妙多出前后空格问题。

    2K30

    小问题记录

    ,不要写全路径,因为软件更新或者重新安装沙盒路径会变 更新流程是这样:更新时,先在新路径里安装新程序,然后把旧程序文件夹里配置文件之类文件拷贝到新路径里去,然后删除旧程序 所以,如果数据库里保存是绝对路径...stringByTrimmingTrailingCharactersInSet:[NSCharacterset whitespaceAndNewlineCharacterSet]]; NSString连接字符串...NSForegroundColorAttributeName:textColor, NSParagraphStyleAttributeName:textStyle}]; 设置粗体文字 首先可以上这个网站:http://iosfonts.com/查看自己要用字体是否支持粗体...& UITextField keyboard强行关闭 [view endEditing:YES]; UITextView限制输入字符 - (BOOL)textView:(nonnull UITextView...这个属性,但是UITextView没有,大家表示也是醉了。

    3.4K21

    五、Web App 基础可视组件属性(IVX 快速开发教程)

    内、外边距 5.2.3 行、列边框 5.2.4 行、列元素呈现方式 5.3 文本属性 5.3.1 文本属性 5.3.2 最大字符数与溢出效果 5.3.3 最大行数 5.3.4 文字颜色与字体样式...点击 背景图片 上传按钮将会弹出 资源选择框,此时选择一张图片作为背景,该 页面 就会用这张图片作为背景显示: 5.1.3 垂直对齐 垂直对齐 属性作用于 页面 中可视 子对象。...web 页面中以横排呈现,列组件 在 web 页面中以垂直方式呈现元素: 5.3 文本属性 文本组件 一般用于显示文字,在 web 页面做用于提示、说明,常用属性如下: 内容 最大字符数 最大行数...溢出效果 文字颜色 字体样式 5.3.1 文本属性 内容属性 指在文本组件中需要显示内容,在属性栏中更改文本内容即可更改显示内容: 5.3.2 最大字符数与溢出效果 文本组件 最大字符数 指的是文本中所能容纳最大内容...文字颜色 可以修改该文本框呈现颜色,字体样式可以设置加粗、斜体、下划线、删除线: 5.4 图片属性 图片组件 用于图片显示,可以通过修改图片 圆角,圆角值越大则角越 “圆滑” 做出比较独特效果

    4K20

    UI篇-CATextLayer和 富文本交融

    不是 UIFont lary.fontSize = 12.f;//字体大小 lary.alignmentMode = kCAAlignmentCenter;//字体对齐方式...在使用中通过将AttributedString赋值给控件 attributedText 属性来添加文字样式。有属性控件有UILabel、UITextField和UITextView。...NSMutableAttributedString NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc]initWithString:str]; //设置字体和设置字体范围...、字符间距、以及对齐模式,但是注意是,在设置段落样式时候,必须保证控件 numberofline属性必须为0 NSMutableAttributedString* str2 = [[NSMutableAttributedString...drawAtPoint和drawInRect区别是一个可以自动换行,不过代价是 不设置属性,都是默认属性有时候是无法接受

    2.5K10

    一文学会设置 Jupyter 主题与目录

    把设置过程写出一个教程,供大家参考。 Jupyter notebook等简单介绍 做数据科学小伙伴们对Jupyter notebook一点都不陌生,下载安装anaconda就可以直接使用了。...例如,可以内联包含由matplotlib库呈现出版物质量图形。 使用Markdown标记语言在浏览器中编辑富文本,可以为代码提供注释,不限于纯文本。...除了设置"模板"主题,还可以自定义,设置代码字体/大小、notebook界面字体/大小、单元格宽度和行高等等。 可以设置 markdown(文本单元格)和notebook(界面)字体/字体大小。...设置绘图样式 jtplot.style()对 matplotlib rcParams 字典进行更改。...上面两个步骤都没报错,启动 Jupyter Notebook,上面选项栏会出现 Nbextensions 选项。 ?

    1.4K20
    领券