根据字符串内容、最大宽度和字体计算行宽和高度

简介: 根据字符串内容、最大宽度和字体计算行宽和高度

根据字符串内容、最大宽度和字体计算行宽和高度

计算宽度

    CGSize maxSize = CGSizeMake(MAXFLOAT,45);     //设置字符串的宽高  MAXFLOAT为最大宽度极限值  45为最大高度。若设置为最大宽度是MAXFLOAT则只能计算宽度;当然若设置为有限的值,如:300,则可以计算高度。
    CGSize size = [@"微信授权登录" boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
    CGFloat titleBtnWidth = size.width+shift;


计算宽高

    NSDictionary *attributes = @{NSFontAttributeName : [UIFont systemFontOfSize:14]};     //字体属性,设置字体的font
    CGFloat shift = 0.0;
    if(@available(iOS 11.0, *)) {
        shift = 0.1;//由于计算字符四舍五入问题,iOS11计算的宽度比实际稍低,所以要补偿回来
    }
    
    CGSize maxSize = CGSizeMake(300,45);     //设置字符串的宽高  300为最大宽度极限值  45为最大高度。
    CGSize size = [@"微信授权登录" boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
    CGFloat titleBtnWidth = size.width+shift;
    CGFloat titleBtnHeight = size.height;
目录
相关文章
|
API Python
有效电子邮件地址是怎么样的?如何用代码筛查
有效电子邮件地址是怎么样的?如何用代码筛查
|
11月前
|
缓存 监控 前端开发
在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统
本文深入探讨了在 Go 语言中实现 WebSocket 实时通信的应用,包括 WebSocket 的简介、Go 语言的优势、基本实现步骤、应用案例、注意事项及性能优化策略,旨在帮助开发者构建高效稳定的实时通信系统。
478 1
|
11月前
|
SQL 关系型数据库 MySQL
mysql数据误删后的数据回滚
【11月更文挑战第1天】本文介绍了四种恢复误删数据的方法:1. 使用事务回滚,通过 `pymysql` 库在 Python 中实现;2. 使用备份恢复,通过 `mysqldump` 命令备份和恢复数据;3. 使用二进制日志恢复,通过 `mysqlbinlog` 工具恢复特定位置的事件;4. 使用延迟复制从副本恢复,通过停止和重启从库复制来恢复数据。每种方法都有详细的步骤和示例代码。
1371 2
|
11月前
|
JSON 安全 Go
Go语言中使用JWT鉴权、Token刷新完整示例,拿去直接用!
本文介绍了如何在 Go 语言中使用 Gin 框架实现 JWT 用户认证和安全保护。JWT(JSON Web Token)是一种轻量、高效的认证与授权解决方案,特别适合微服务架构。文章详细讲解了 JWT 的基本概念、结构以及如何在 Gin 中生成、解析和刷新 JWT。通过示例代码,展示了如何在实际项目中应用 JWT,确保用户身份验证和数据安全。完整代码可在 GitHub 仓库中查看。
1839 1
|
移动开发 应用服务中间件 Android开发
踩坑记录:请求接口status返回0
踩坑记录:请求接口status返回0
踩坑记录:请求接口status返回0
|
前端开发
单步调试报错 Thread 1: EXC_BAD_ACCESS (code=1, address=0x6565656565)
单步调试报错 Thread 1: EXC_BAD_ACCESS (code=1, address=0x6565656565)
362 0
|
容器
echarts的grid——图表的位置配置
echarts的grid——图表的位置配置
1977 1
scrollIntoView()定位元素显示导致页面上移解决方法?
scrollIntoView()定位元素显示导致页面上移解决方法?
1036 0
|
数据采集 前端开发 搜索推荐
埋点tracker:前端数据埋点-方案设计思路梳理
埋点tracker:前端数据埋点-方案设计思路梳理
2919 0
|
缓存 运维 网络协议
mPaaS云平台运维系列之—移动推送产品介绍
消息推送服务(Message Push Service,简称 MPS)是移动开发平台 mPaaS提供的专业的移动消息推送方案,针对不同的场景推出多种推送类型,满足客户的个性化推送需求。为了提升推送的到达率,mPaaS在MPS中集成了华为、小米等厂商的推送功能,在提供控制台快速推送能力的同时,也提供了服务端接入方案,方便用户快速集成移动终端推送功能,与App用户保持互动,从而有效地提高用户留存率,提升用户体验。
2176 0
mPaaS云平台运维系列之—移动推送产品介绍