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

UI篇-CATextLayer和 富文本交融

而NSMutableAttributedString有可以最自己内容作出颜色以及大小调整,这样结合起来使用的话,就远比UILabel 灵活多,效果也酷炫多,也许CATextLayer就是为了NSMutableAttributedString...不是 UIFont lary.fontSize = 12.f;//字体大小 lary.alignmentMode = kCAAlignmentCenter;//字体对齐方式...在使用中通过将AttributedString赋值给控件 attributedText 属性来添加文字样式。有属性控件有UILabel、UITextField和UITextView。...appendAttributedString:attr1]; UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(60, 100,...、字符间距、以及对齐模式,但是注意是,在设置段落样式时候,必须保证控件 numberofline属性必须为0 NSMutableAttributedString* str2 = [[NSMutableAttributedString

2.4K10
您找到你想要的搜索结果了吗?
是的
没有找到

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

目前市面上非UI线程文本算高方法或多或少都有一些问题。本文通过逆向和分析UILabelsizeThatFits方法实现来得到一个最佳文本算高精简方法。...从iOS官方实现中可以看出文本算高会考虑简单文本字符串、属性字符串、字体大小、最大显示行数numberOfLines、段落信息、 段落对齐方式、断字方式、段落首行缩进、阴影偏移等等因素。.../// @param text 要计算简单文本NSString或者属性字符串NSAttributedString对象 /// @param numberOfLines 指定最大显示行数,如果为0则表示不限制最大行数.../// @param font 指定计算时文本字体,可以为nil表示使用UILabel控件默认17号字体 /// @param textAlignment 指定文本对齐方式默认是NSTextAlignmentNatural...*originAttributedString = (NSAttributedString *)text; //对于属性字符串总是加上默认字体和段落信息。

1.4K40

iOS文本布局探讨之三——使用TextKit框架进行富文本布局

二、原生UILabel真的只能渲染文字么?         CoreText是一个比较底层且十分强大文本渲染框架,但是其使用起来并不是十分方便。在较低版本iOS系统中,要进行富文本排版十分困难。...在iOS6中,系统为UILabel,UITextView等这类文本渲染控件引入了NSAttributedString属性,有了NSAttributedString这个类,创建灵活多彩文本控件变得十分轻松...所描述内容转换为NSAttributedString示例。...:[NSAttributedString attributedStringWithAttachment:attach2] atIndex:130]; UILabel * label = [[UILabel...三、为富文本附件添加用户交互能力         TextKit框架强大到只使用UILabel就可以完成复杂富文本布局,但是UILabel有一个致命缺陷,其无法进行用户交互。

2K20

iOS坐标系探究

正文 我们先从一段最简单代码入手,在drawRect中显示一个普通UILabel; 为了方便判断,我把整个view背景设置成黑色: - (void)drawRect:(CGRect)rect {...所以按照UILabel.layer默认坐标(0, 0),在左上角进行了绘制。 接着,我们尝试使用CoreText来渲染一段文本。...我们回顾下上文提到两个渲染结果,我们产生如下疑问: UIGraphicsGetCurrentContext返回是CGContext,代表着是左下角为原点坐标系,用UILabel(UIKit坐标系)...可以直接renderInContext,并且“测”字对应为UILabel(0,0)位置,是在左上角?...matrix都是[2, 0, 0, -2, 0, 200]; 遇到问题 1、UILabel.layer在drawContext时候frame失效 初始化UILabel时设定了frame,但是没有生效

2.7K30

iOS开发小技巧:根据文本,字体,计算UILabel高度及宽度

为了计算UILabel宽度,除了通过NSString自带boundingRectWithSizeAPI外,还可以利用sizeToFit对UILabel封装一个分类。 1....调用示例: 场景:在一个UITableViewCell中,重写Cell一个模型属性setter方法,需要先对UILabel对象text属性赋值后,再进行更新布局约束操作。...最终,该对象包含信息将用于文本绘制。该参数一般为 nil 。 返回值: 一个矩形,大小等于文本绘制完将占据宽和高。 练习题:封装一个根据字体,字符串,宽度等参数得到高度方法?...image.png 其中 NSAttributedString Calculates and returns bounding rectangle for the receiver drawn using...graphics context. - (NSRect)boundingRectWithSize:(NSSize)size options:(NSStringDrawingOptions)options; NSAttributedString

5K10

Swift 3.0 探索之 UILabel

开篇 最近闲来无事,看看Swift3.0,发现和我认识1.0有很大不同了,如果不学习一下估计会落伍了,所以探究一下 Swift 在开发中使用(当然目前是初级水平,一起进步嘛,也欢迎菜鸟,大神一起探讨...QQ群 139852091) 正题 UILabel是我们开发中常用控件了,我今天就拿它开刀,看一下我们在开发中常用UILabel属性 创建已经常规设置 //let 变量名字 = 变量类型...(这是一个变量声明方法) let myLabel = UILabel() myLabel.text = "我是一个Label" //设置text 相比OC 省略了@“”...�图1 NSAttributedString 富文本 我们还经常使用 Label 一个属性是NSAttributedString 我们看一下这个在Swift里面怎么使用 ****当设置NSAttributedString...属性时候,设置text将失效,其textColor、font等属性将保留没有被改变(OC Swift通用属性)**** //富文本设置 let attributeString

77930

iOS | 动态获取字符串宽高并添加约束

在 iOS 实际编码过程中,我们可能会需要通过代码动态向某个 View 视图中添加 UILabel, 此时,我们必须手动为这些 UILabel 对象添加约束条件,否则,这些 UILabel 将会因为没有约束条件而无法显示...只有获取到 UILabel 中填充字符串所占据宽高信息信息之后,才能为其添加具体约束,所以—— 通过代码获取字符串所占视图宽度: /* * 获取字符串边框 */ func getStrBoundRect...option:NSStringDrawingOptions=NSStringDrawingOptions.usesLineFragmentOrigin)->CGRect{ let attr = [NSAttributedString.Key.font...equalTo: self.spendCouponView.bottomAnchor, constant: 0).isActive=true return rightBound } 上述两个函数调用示例如下...var preRightBound=CGFloat(0) for i in 0 ..< 4{ let spendCouponChildView=UILabel

71010

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

关于行间距 lineSpacing 先贴出一张 iOS 中 UILabel 默认排版样式: ? 大家也都能看出来,默认排版样式中,文本行间距很小,显得文本十分挤。...但是 UILabel 是没有这么一个直接暴露属性,想要修改 lineSpacing,我们需要借助 NSAttributedString 来实现,示意代码: NSMutableParagraphStyle...attributes setObject:paragraphStyle forKey:NSParagraphStyleAttributeName]; label.attributedText = [[NSAttributedString...attributes setObject:paragraphStyle forKey:NSParagraphStyleAttributeName]; label.attributedText = [[NSAttributedString...lineHeight 同样可以借助 NSAttributedString 来实现,示意代码: NSMutableParagraphStyle *paragraphStyle = [NSMutableParagraphStyle

3.7K30
领券