swift中根据宽度计算文字高度的方法的封装

swift-自定义Label可以设置label每行的高度设置字体大小等 自定义Label,可以设置label每行的高度,设置字体大小,可以获取label的size和行数,可以设置label的每行字下面加一条横线(实现类似日记的效果),简单封装,满足自用。 立即下载

开发中经常会用到根据字符串的宽度或者高度来算高度以及宽度的情况,OC中比较好操作,但是之前的一些方法被舍弃之后再过度到swift会有些茫然,好在找了下api,也百度一下别人的方法,自己封装了根据高算宽以及根据宽算高的方法,留着以后自己使用,也希望能帮到别人吗,方法如下:

func getTextHeigh(textStr:String,font:UIFont,width:CGFloat) -> CGFloat {

     let normalText: NSString = textStr
    let size = CGSizeMake(width,1000)
    let dic = NSDictionary(object: font, forKey: NSFontAttributeName)
    let stringSize = normalText.boundingRectWithSize(size, options: .UsesLineFragmentOrigin, attributes: dic as? [String : AnyObject], context:nil).size
    return stringSize.height
}

func getTexWidth(textStr:String,font:UIFont,height:CGFloat) -> CGFloat {
    
    let normalText: NSString = textStr
    
    let size = CGSizeMake(1000, height)
    
    let dic = NSDictionary(object: font, forKey: NSFontAttributeName)
    
    let stringSize = normalText.boundingRectWithSize(size, options: .UsesLineFragmentOrigin, attributes: dic as? [String : AnyObject], context:nil).size
    
    return stringSize.width
    
}

如上,即可,可以直接拷到工程里使用
三电平逆变器LC滤波设计避坑指南:从SVPWM谐波到Simulink仿真验证 本文详细解析了三电平逆变器LC滤波设计中的关键问题,从SVPWM谐波特性到Simulink仿真验证,提供了800V/10kW系统的参数计算方法和优化技巧。通过实际案例和仿真配置示例,帮助工程师避免常见设计误区,提升电能质量和系统稳定性。 阅读详情

相关推荐

四旋翼黑科技揭秘:如何利用PX4隐藏的角加速度数据提升控制性能

本文深入探讨了如何利用PX4飞控中隐藏的角加速度数据,结合增量非线性动态逆(INDI)控制方法,显著提升四旋翼无人机的控制性能。通过实战教程,指导开发者从数据订阅、INDI原理到代码实现,构建响应更快、鲁棒性更强的控制回路,有效应对突风与快速机动。

lake5的博客 721

ios swift5 UIlabel 根据文字(内容)计算高度 宽度确定,高度自适应,但要提前知道高度 boundingRectWithSize

文章目录1.下面截图实测了通过文字算出来的高度,和label(宽设置为200)实际展示时候的高度,都是255,是吻合的2.代码3.参考博客: 1.下面截图实测了通过文字算出来的高度,和label(宽设置为200)实际展示时候的高度,都是255,是吻合的 2.代码 class tableViewTestVC: UIViewController{ lazy var label:UILabel = { let label = UILabel() label.backgrou

baidu_40537062的博客 4532

AWS 小白书 [1] 全球架构

小白应该知道的 AWS 知识

boshansolo的博客 704

Swift - 计算文本高度

Swift - 计算文本高度   效果   源码 // // String+StringHeight.swift // StringHeight // // Created by YouXianMing on 16/8/30. // Copyright © 2016年 YouXianMing. All rights reserved. // impo...

weixin_34344677的博客 287

加法器设计—— 原理图与VHDL设计初步

1、在DE2-115开发板上,完成4位全加器系统的设计、下载和功能演示,并在FPGA上实现1位全加器;2、完成3-8译码器的设计、下载和功能演示(利用板上的8段数码管)本次实验在组合逻辑电路的基础上,运用Verilog编程实现了四位全加器和3-8译码器的设计,同时实现了在DE2-115开发板上的下载和功能演示。整个过程加深了我对电路设计和Verilog编程的理解,同时也锻炼了解决问题的能力。

m0_74749526的博客 1239

SAP采购订单中项目类别B(限制)的控制逻辑

在笔者所在企业中,框架类采购订单中项目类别需要选择B(限制)。今天笔者从比较全面的角度分析了一下这个项目类别B到底可以决定些什么?控制到什么?先从后台SPRO中打开相应的配置菜单。 打开项目类别B之后,可以看到一些配置信息,这里有一点与其它配置不同的地方,即无法新增项目,也无法修改现有项目。这个疑惑今后再去解决吧。当前只研究项目类别B的控制逻辑。 下面就参考上图中的配置分段来分析和测试其控制逻辑, 1、如项目类别配置图,所需材料值为不允许;经测试,如下图在采购订单创建时,不能输入物料编号条目。

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 6034

swift计算文本的高度与长度

// 计算高度与长度的类函数 static func getTextRectSize(_ text:NSString,font:UIFont,size:CGSize) -> CGRect { let attributes = [NSAttributedString.Key.font: font] let option = NSStringDrawingOptions.usesLineFragmentOrigin .

xiayong763541的博客 1560

ROS中costmap_converter插件的配置与使用

在学习TEB算法的过程中,作者提供了一个插件用于转换代价地图,原始的代价地图是由栅格地图中单元格组成,用于表示障碍物,但单元格占用的计算资源较大,故采用插件将单元格转换成点,线,多边形表示。 插件激活 rospack plugins --attrib=plugin costmap_converter 配置cfg文件 在导航配置文件下,新建costmap_converter_params.yaml #######################################################

weixin_42621524的博客 5905

swift NSStringDrawingOptions计算文本的宽高

在Swift中我们计算文本的宽度和高度可以使用一下方式://.usesFontLeading 使用字体的行间距来计算文本占用的范围,即每一行的底部到下一行的底部的距离计算 //.usesLineFragmentOrigin 整个文本将以每行组成的矩形为单位计算整个文本的尺寸 //.usesDeviceMetrics 将文字以图像符号计算文本占用范围,而不是以字符计算。也即是以每一个字体所占用的空

Super灬LV 3006

基于STM32F1XX 、HAL库的LTR-303ALS-01 环境光传感器驱动应用C语言程序设计

printf("制造商ID: 0x%02X\r\n", LTR303_ReadManufacID());printf("器件ID: 0x%02X\r\n", LTR303_ReadPartID());LTR-303ALS-01是一款数字环境光传感器(ALS),由Lite-On公司生产。printf("LTR-303ALS初始化失败!printf("LTR-303ALS初始化成功!printf("数据无效\r\n");* @param mode: 0-待机, 1-激活。

PP_Cottage的博客 1033

四非人的保研之路,2024(2025届)四非计算机的保研经验分享(西南交通、苏大nlp、西电、北邮、山软、山计、电科、厦大等)

本身我就是福建人,xmu 3小时就能到家,然后导这边毕业要求容易,不想读博,达到要求就能放实习,每周打卡35h,比较自由,遂考虑。北邮弱com,联系了蛮多老师,几乎都给了考核机会,面试的老师好几位都考核人工智能基础,会问你卷积的计算,问的还是蛮细的。当时结果是暂定,以为是稳了,遂没联系其他老师,但是之后询问发现只是候补,懒得联系其他老师,928候补到,放弃。东北大学,2000人大机试,入营点送,全国巡回面试,每个人就面不到10分钟,我就被问了3个问题就结束了,候补。科研组,导师有人脉,想读博出成果可以去。

专注于AI领域前沿知识,业余爱好开发软件 4354

计算文字的宽度和高度

计算文字的宽度和高度

why_not_的专栏 3120

问答式AI vs 智能体(Agent):它们有什么不同?

你肯定用过 ChatGPT 或文心一言——问它一个问题,它给你一个答案。AI Agent(AI智能体)。很多人搞不清楚:它们不都是"AI"吗?有什么区别?这篇文章用一个最简单的类比,彻底讲清楚这两者的本质差异。框架特点适合人群AutoGPT完全自主执行任务,链式思考开发者MetaGPT模拟团队协作,多角色分工开发者LangChain最流行的Agent开发框架开发者Dify可视化无代码搭建Agent非技术用户Coze(扣子)字节跳动出品,国内最易用普通用户WorkBuddy。

Johnny2004的专栏 449

【iOS 开发】Xcode6中计算文字的宽度或高度 ——伊禾媛

- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0); 计算字符串宽、高。

lois_05的专栏 1359

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

iOS Label自适应高度/宽度 , 图片自适应

项目里许多地方都需要自适应Label上文字的高度,所以可以吧自适应高度的代码单独封装起来,写在一个类里,这样在其他的类里想调用这个方法,就可以直接使用,不用每个类都写一遍这个方法.我把这个类起个名字叫SizeForLabel//SizeForLabel.h @interface SizeForLabel : NSObject +(CGSize)labelRectWithSize:(CGSize)si

珊小瑚的博客 3423

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Swift iOS : YYText计算文字占用高度

使用动态文字填充UITableViewCell内容时,需要计算文字占用高度,以便告知UITableViewCell的行高。使用YYText的YYTextLayout可以帮助做到这点。 如下案例,简单封装了YYTextLayout,并通过两个案例调用,演示它的做法: import UIKit import YYText @UIApplicationMain class AppDelegate: UI...

weixin_33756418的博客 1947

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Swift自动计算Label文字决定宽高的封装

funcgetLabHeigh(labelStr:String,font:UIFont,width:CGFloat) ->CGFloat{ letstatusLabelText:NSString= labelStr letsize =CGSizeMake(width,900) letdic =NSDict...

dnexhep03070的博客 193

UIKit-boundingRectWithSize计算多行UILabel的文字高度

Github源码下载(更新中) tableview的cell需要根据文字内容的长度计算不同文字行数的不同高度,从而动态调整cell的高度,因此需要根据文字的长度和cell的固定宽度来计算文字段落有多少行,高度为多少,实现这个的函数为NSString的boundingRectWithSize函数,这个函数适用于IOS7以后版本中: // //  LabelHeightViewCon

Mr_厚厚的博客 2317

ios开发中计算字符串的高度

//第一种算法,ios7.0后已经废弃CGSize titleSize = [aString sizeWithFont:font constrainedToSize:CGSizeMake(@"label的宽度", MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];//第二种算法ios7.0 后计算字符串的高度CGRect rect = [aString

-此夜微凉 613

原创 UItableViewCell自适应高度

1、封装一个nsobject 对象@interface RkyMyControl : NSObject+(UIButton*)createButtonWithimageName:(NSString*)imageName bgImageName:(NSString*)bgImageName title:(NSString*)title color:(UIColor *)color;+(UILabel...

m0_37880844的博客 241

iOS masonry 不规则tagView布局 并自适应高度

在搜索页面经常会有不规则的tag出现,这种tagView要有点击事件,单个tagView可以设置文字颜色,宽度不固定根据内容自适应,高度固定,数量不固定。总高度就不固定。最近对于masonry的使用又有了一些新的理解,所有就写了一个这样的tagView的例子,demo中全部使用Masonry自动布局,高度也是自适应的,封装的tagView可以直接使用在tablView或者collecti...

dianchidu6913的博客 694

关于用boundingRectWithSize计算label自适应高度那点事

注意: 1.options 参数请使用:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading 2.注意font和宽度的前后设置一致,特别是font的设置,默认label的font是17,如果在后面自己设置了font,那么不要忘记在label初始化的时候也设置统一一致。否则会出现如下结果(少些文字没法显示,左

梦若在心就在的博客 2071

ios label计算高度

#define labelW 300//label的固定宽度 #define fontSize 20//字体大小 #define lingSpace 5//行间距 - (void)viewDidLoad{ [superviewDidLoad]; self.view.backgroundColor=RGBColor(230,230,230); NSString*text =@"风也是秋天."

壁画的博客 564

IOS UITableViewCell高度自适应的那些事

好啦,这是一个老生常谈的问题。真的,有时候把人气得想去搞安卓,安卓就没得这码子事~ 方案有很多,我这里提供三种方案。其实每种自适应高度的方法都有比较适合自己的情景,比如cell里面就一个label文本,其他是按钮或者图片这些,布局比较简单的,就使用简单的方法。又比如你要自己搭建个朋友圈的功能,朋友圈又有文字,又有图片,又有评论这种比较复杂的UI,自己去解决吧。。。本文的高度还没达到。方案一:使用系

周为的博客 1万+
上一篇: iOS开发中如何用Swif重写cell的frame方法
下一篇: Swift中如何实现自定义Debug模式下打印Log
布衣来者
博客等级 码龄12年 16粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值