iOS中的异步渲染探究,以及基于异步渲染的高度自定富文本框架构建
此前不停夷由要不要写个自己的异步渲染库,迩来赶上疫情,恰恰偶尔间,花了几周,完满了一个富文本的异步渲染库,源码地点 LRJAansyDraw,
功能如下
1,文本相应地域自界说,高度预盘算
2,方便加入图片,并设置位置,方便加入标签
3,自界说断行,异步渲染,永不卡顿
4 ,富文本的浅易设置与自界说删除线,分割线等等, 另有许多其他的功能方便用户自行扩展
5, 自界说的item重新天生一个新的图片,非常方便,意味着,你前次绘制的内容可以方便的天生图片
6,假如有任何其他的需求,请接洽作者
LRJ_SampleCoreTextView *viewBase = [LRJ_SampleCoreTextView new]; LRJ_MutableAttributedItem *itme1 = [[LRJ_MutableAttributedItem alloc] initWithText"异步绘制的基础demo"]; [itme1 setFont:[UIFont systemFontOfSize:18]]; [itme1 setColor:[UIColor redColor]]; LRJ_MutableAttributedItem *itme2 = [[LRJ_MutableAttributedItem alloc] initWithText"点击相应地域"]; [itme2 addTarget:self actionselector(pushAction forControlEvents:UIControlEventTouchUpInside]; [itme2 setFont:[UIFont systemFontOfSize:18]]; [itme2 setColor:[UIColor orangeColor]]; [itme1 appendAttributedItem:itme2]; [itme1 appendWhiteSpaceWithWidth:20]; viewBase.backgroundColor = [UIColor blackColor]; __weak typeof(viewBase) weakViewBase = viewBase; viewBase.trancatedBlock = ^{ weakViewBase.numerOfLines = 0; CGSize size = [itme1.resultString wmg_sizeConstrainedToWidth:[UIScreen mainScreen].bounds.size.width - 20 numberOfLines:0]; weakViewBase.frame = CGRectMake(10, 10, size.width, size.height); [weakViewBase redraw]; }; viewBase.frame = CGRectMake(10, 10, size.width, size.height + 5); [self.view addSubview:viewBase]; self.myView = viewBase;此处放入一些简单的结果展示,并不代表只有这些功能,只是暂时满足绝大多数场景的需求
结尾 :此库力图好用,渴望有此必要的同砚,可以或许利用,而且我会积极去丰富更多的功能,也可以提给我更多的你所必要的功能
补充:别的提供了许多点击地域相应,控制点击样式大概点击相应地域自界说
补充2:参考部门同砚提出的需求,完成了虚线和波浪线的需求
用法:
/** * 设置AttributedItem的删除线波浪线 * * @param color 波浪线风格 * */- (void)setWaveLineThroughColorUIColor *)color;[itme3 setWaveLineThroughColor:[UIColor redColor]]; |