UITextView高级用法

这篇博客探讨了在实际开发中如何深入利用UITextView,特别是在满足复杂需求时,需要对框架有全面理解,而不仅仅是依赖基础API。文中提到了为字体添加边框等高级用法,并且推荐了一个双语播放器应用,旨在帮助程序员提升英语水平。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目前有三个需求,1.给每个字体加边框;2.随着文字的内容的变化改变控件大小;3点击单词能够识别出该单词。
其实要实现这三个功能已经不是上层API能做的事情了,这时候你要理解清楚UITextView的整个实现过程,才有可能找到解决方案。
a.苹果Text Kit Framework

从上面可以看出UITextVIew在框架中的位置,实际上它继承了UIScrollView。

从上面可以看出UITextVIew内部是怎么实现文字显示和排版布局的。具体的实现可以看这篇文章: https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/CustomTextProcessing/CustomTextProcessing.html

b.给每个字体加边框



其实这个效果的实现思路就是给每个字加上一个背景,那么怎么给每个字后面加一个黑色的,比原来稍微大一些的字呢?
我原来的想法是用另外一个UITextView去实现这个功能,后来我分析这个方案是有可能失败的,因为你放大字体,那么就有可能导致排版和原来不一样,那么这个方案就失去了意义,因为编程就必须考虑代码的健壮性。
后来就在网上寻找怎么去画一个字?最后的代码像是这样的:
-( void )drawRect:( CGRect )rect{    NSMutableDictionary *attributes = [[
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值