ios lable中电话号码点击拨打电话
1.核心代码,找到电话号码的位置
#pragma mark-<获取电话号码的坐标>
+ (CGRect)boundingRectForCharacterRange:(NSRange)range andLable:(UILabel *)lable lableSize:(CGSize)lableSize{
// NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:contentStr];
// NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
// paraStyle.lineSpacing = 6;
// NSDictionary *attrs =@{NSFontAttributeName : [UIFont systemFontOfSize:12.0], NSParagraphStyleAttributeName : paraStyle};
// [attributeString setAttributes:attrs range:NSMakeRange(0, contentStr.length)];NSTextStorage *textStorage = [[NSTextStorage alloc] initWithAttributedString:lable.attributedText];NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];[textStorage addLayoutManager:layoutManager];NSTextContainer *textContainer = [[NSTextContainer alloc] initWithSize:lableSize];textContainer.lineFragmentPadding = 0;[layoutManager addTextContainer:textContainer];NSRange glyphRange;[layoutManager characterRangeForGlyphRange:range actualGlyphRange:&glyphRange];CGRect rect = [layoutManager boundingRectForGlyphRange:glyphRange inTextContainer:textContainer];
// CGFloat yOfset = rect.origin.y;
// rect.origin.y = yOfset + 3;return rect;
}
2.用法示例
{ // 添加拨打电话
self.tipsLabel.userInteractionEnabled = YES;
[self.view layoutIfNeeded];
NSRange range = [_tipsLabel.text rangeOfString:@"4006668800"];
UIControl *phoneControl = [[UIControl alloc] initWithFrame:[ZYTools boundingRectForCharacterRange:range andLable:self.tipsLabel lableSize:self.tipsLabel.frame.size]];
phoneControl.tag = 1234;
[phoneControl addTarget:self action:@selector(phoneLink) forControlEvents:UIControlEventTouchUpInside];
[_tipsLabel addSubview:phoneControl];
}
#pragma mark-点击拨打电话
- (void)phoneLink{
NSString *str = [NSString stringWithFormat:@"tel:%@",CustomerServiceTelephone];
dispatch_async(dispatch_get_main_queue(), ^(){
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:str]];
});
}
3.注意label的attributedText一定要设置字体大小
- (UILabel *)tipsLabel
{
if (!_tipsLabel) {
_tipsLabel = [[UILabel alloc] init];
_tipsLabel.text = @"1、请输入正确的运营商服务密码,如果忘记请点击\"忘记密码\"\n2、运营商认证需要2-3分钟,请耐心等待\n3、如果重置密码失败,请拨打客服热线:4006668800";
_tipsLabel.font = UIFONT_12;
_tipsLabel.numberOfLines = 0;
_tipsLabel.textColor = colorWith(@"#939ca5");
_tipsLabel.textAlignment = NSTextAlignmentLeft;
NSMutableParagraphStyle *paraStyle = [[NSMutableParagraphStyle alloc] init];
paraStyle.lineSpacing = 6;
NSDictionary *dict = @{NSParagraphStyleAttributeName : paraStyle};
NSMutableAttributedString *attr = [[NSMutableAttributedString alloc] initWithString:_tipsLabel.text attributes:dict];
NSRange range = [_tipsLabel.text rangeOfString:@"4006668800"];
[attr addAttribute:NSForegroundColorAttributeName value:[UIColor colorWithHexString:@"#FB6F5C"] range:range];
[attr addAttribute:NSFontAttributeName value:[UIFont systemFontOfSize:12.0] range:NSMakeRange(0, _tipsLabel.text.length)];
_tipsLabel.attributedText = attr;
}
return _tipsLabel;
}
ios lable中电话号码点击拨打电话相关推荐
- 【uniapp】微信小程序中实现点击拨打电话的功能
手机端运行会直接调起电话按钮,代码如下: <view class="text2_button" @click="freeTell"><tex ...
- html5页面拨打电话,5.添加页面/设置点击拨打电话
1.新增页面.新建的作品里默认是两页,这时候制作第三页需要我们自己新建.这与PPT有些类似,在第二页页面上右击,点击新增空白页: 2.第三页新建的画布. 3.素材上传/摆放/设置动画及播放次序.上两节 ...
- html实现点击拨打电话功能
html实现点击拨打电话功能 1.代码 <!-- 联系客服 --> <div class="tel"><img src="./img/tel ...
- 微信小程序点击拨打电话
效果图: 需求:点击文字然后拨打电话 为防止这个功能会在多个地方使用,我们可以创建一个components. 1.在顶级目录下建立一个components文件夹,在这个文件夹下再建立一个文件夹,例如叫 ...
- APP中H5页面实现拨打电话功能
萨瓦迪卡,欢迎大家~~ <a href="tel:400-0000-000">400-0000-000</a>//如失效,就在head标签里加上<me ...
- android指定sim卡拨号,使用双SIM卡设备中的指定SIM拨打电话
过去几天我一直在寻找这个,我开始知道: "开箱即用的Android不支持双SIM卡.这是制造商的自定义修改,并且没有公共API来控制它." 下面的链接提供了一个解决方案,但它不能在 ...
- 移动端点击拨打电话功能
移动端 vue项目 拨打电话 1.获取到的手机号码,调用拨打电话方法callPhone 2.拨打电话方法callPhone 荣耀手机(不知道能不能代替安卓机):点击直接跳转拨打电话页面: iphone ...
- uniapp点击拨打电话
最近用uniapp做微信小程序,有个通讯录功能,需要调用手机拨打电话,如下所示: <view class="action" @click="phone(inform ...
- html双击回顶部,百度/微信小程序点击按钮回到顶部(scrollTop=0)/点击拨打电话...
一.HTML部分 二.JS部分页面滚动回到顶部 1.监听页面滚动事件 onPageScroll(e) { // console.log(e.scrollTop) if (e.scrollTop > ...
最新文章
- creo导入特征怎么实体化_Creo/Proe云图抄数牙刷抄数造型
- Nginx入门教程-简介、安装、反向代理、负载均衡、动静分离使用实例
- 华为云网络覆盖全球2500+站点,打造高品质、低成本接入体验
- day12-nginx
- java 信息增益_对信息增益(IG,Information Gain)的理解和计算
- synchronized原理_synchronized 底层原理与内存屏障
- AVEVA软件编程是C语言么,AVEVA PDMS 三维文字工具
- [Ext JS 4] 实战之Load Mask(加载遮罩)的显示与隐藏
- [Java] 1006. Sign In and Sign Out (25)-PAT甲级
- AARRR:数据运营模型
- Asp.net页面生命周期详解任我行(2)-WebForm页面生命周期WEBFORM_ASPNET控件树的生成和作用...
- 基于vue和springboot的物流仓储管理系统
- 关于STM32红外遥控器的研究与分析
- 想请问下PDF双面打印时(打印机自动双面打印)为什么反面那页的内容是倒过来的,应该怎么设置?...
- 知识图谱构建技术综述与实践
- 有关“十二生肖”的成语
- 课堂派(SpringBoot+Vue)
- 华为第十届 关灯计划
- iOS - 微信分享无法显示好友列表
- stm32控制半导体制冷器实现饮水机保温制冷功能
热门文章
- 2020年黄历表_2020黄历查询(2020年老黄历表)
- php前端开发是什么,前端开发是什么?前端开发是什么意思
- 鸿蒙中国壁纸高清全面屏,华为鸿蒙新机来袭:几乎100%全面屏+麒麟980+4500mAh 这才是华为...
- 关于信息安全和安全漏洞的一些科普——从支付宝控件漏洞谈起
- 什么是 Schottky diode
- 问题 - vmd_ei_api更新供应商主数据时未标记字段被覆盖
- MVC框架实现用户登录注册功能(连接数据库)
- 原深发展总行行长、平安银行原董事长肖遂宁挂帅太合汇资本
- Excel表格中“平方、立方”单位如何正确输入
- 优先处理我的问题,帮我编写获取双色球中奖号码的历史数据的python代码