通過(guò)CoreText和富文本屑墨,能夠?qū)崿F(xiàn)圖文混排和點(diǎn)擊事件。在實(shí)現(xiàn)點(diǎn)擊事件時(shí)纷铣,能夠?qū)χ付ㄎ谋緦?shí)現(xiàn)背景高亮卵史。demo地址:https://github.com/lihui1314/LHTIViewT.git
我做了一些簡(jiǎn)單的封裝代碼調(diào)用起來(lái)也很簡(jiǎn)單。LHTIView
為展示類搜立;LHCoreTextData
圖文解析類程腹,LHImageData
圖片解析類,LHHighlight
文字點(diǎn)擊事件設(shè)置類儒拂。
示例代碼:
LHHighlight*hightlight = [[LHHighlight alloc]init];
hightlight.tapBackgroundColor = [UIColor lightGrayColor];//高亮背景
hightlight.userInfo = @{@"name":@"lh"};
hightlight.tapAction = ^(NSRange rang, id userInfo, NSString *str) {
[self lh_arlert:userInfo[@"name"]];
};//點(diǎn)擊事件回調(diào)
[muteStr lh_setHighlight:hightlight andRange:NSMakeRange(3, 24)];
CGFloat width = [UIScreen mainScreen].bounds.size.width-30;
LHTIView*view = [[LHTIView alloc]initWithFrame:CGRectMake(15, 30,width, 0)];
LHCoreTextData*coreData = [[LHCoreTextData alloc]initWithWidth:width];
LHImageData*imageData = [[LHImageData alloc]initWithAttributes:atts viewWidth:width];
imageData.image = [UIImage imageNamed:@"331545211074_.pic.jpg"];
imageData.loction = 45;//圖片插入位置
imageData.imageInfo = @{@"name":@"331545211074_.pic.jpg"};
coreData.imageDataArray = [NSMutableArray arrayWithObjects:imageData, nil];
coreData.muteAttStr = muteStr;
view.coreTextData = coreData;
view.delegate = self;
[self.view addSubview:view];
圖片點(diǎn)擊代理方法:
-(void)lh_didClickImage:(UIImage *)image info:(id)info{
[self lh_arlert:info[@"name"]];
}
效果圖