swift4.0 根据文字计算带emoji的文字高度

简介: 这是一个基本的功能,实现的方法自然也很多了,仁者见仁,智者见智,若觉得我的实现不够好,欢迎指正。效果图:高度截图.gif文字高度截图.

这是一个基本的功能,实现的方法自然也很多了,仁者见仁,智者见智,若觉得我的实现不够好,欢迎指正。

效果图:


img_80ce89e1e0550d5c4c92ec9d7403d876.gif
高度截图.gif
img_96cc92a11aa71268e351a5fa1a7bfb99.png
文字高度截图.png

代码实现:

//
//  TestCell.swift
//  SwiftCalculateHeight
//
//  Created by iOS on 2018/5/24.
//  Copyright © 2018年 weiman. All rights reserved.
//

import UIKit

let screenWidth = UIScreen.main.bounds.size.width

class TestCell: UITableViewCell {
    
    @IBOutlet weak var textL: UILabel!
    
    class func height(text: String) -> CGFloat {
        // 注意这里的宽度计算,要根据自己的约束来计算
        let maxSize = CGSize(width: (screenWidth - 30), height: CGFloat(MAXFLOAT))
        let paraph = NSMutableParagraphStyle()
        let textSize = NSString(string: text).boundingRect(
            with: maxSize,
            options: [.usesFontLeading, .usesLineFragmentOrigin],
            attributes: [.font : UIFont.systemFont(ofSize: 14),
                         .paragraphStyle: paraph],
            context: nil).size
        // 注意,这里的数字也是根据实际情况来的,这里的文字距离上面是10,距离下面也是10,所以加了两个10
        return textSize.height + 10 + 10
    }

}

demo地址:

https://github.com/weiman152/SwiftCalculateHeight/tree/master

目录
相关文章
|
测试技术 Swift
Swift:UILabel超出宽度文字的截取
Swift:UILabel超出宽度文字的截取
514 0
Swift:UILabel超出宽度文字的截取
|
8月前
|
存储 程序员 Swift
Swift开发——存储属性与计算属性
Swift推荐使用结构体进行开发,结构体支持属性和方法,且作为值类型。结构体属性包括存储属性(如radius)和计算属性(如r),计算属性不存储值,类似方法。结构体用`struct`定义,命名遵循大驼峰规则。实例名遵循小驼峰规则。属性可在结构体中任意位置定义,静态属性用`static`。存储属性可为`lazy`实现懒加载。结构体实例通过`.`访问属性和方法,静态属性和方法用`结构体名.`访问。计算属性可读写,可通过`get`和`set`定义。程序段1展示了结构体Point和Circle的属性和方法,包括私有属性、只读计算属性、可读写计算属性及`mutating`方法。
53 0
Swift开发——存储属性与计算属性
|
Swift
Swift之设置UItextField的占位文字颜色颜色
Swift之设置UItextField的占位文字颜色颜色
273 0
Swift之设置UItextField的占位文字颜色颜色
|
存储 监控 Swift
Swift实用小册09:存储属性、计算属性及属性观察器的使用
Swift实用小册09:存储属性、计算属性及属性观察器的使用
294 0
Swift实用小册09:存储属性、计算属性及属性观察器的使用
|
存储
Swift5.1——计算属性
Swift5.1——计算属性
165 0
Swift5.1——计算属性
|
Swift iOS开发
iOS - Swift - NSAttributedString 显示Emoji乱码问题
iOS - Swift - NSAttributedString 显示Emoji乱码问题
iOS - Swift - NSAttributedString 显示Emoji乱码问题
|
存储 Swift
Swift5.1—计算字符数量
Swift5.1—计算字符数量
323 0
|
JavaScript
Swift中关于集合计算的几种函数记录(intersect、symmetricDifference、union、subtract)
Swift中关于集合计算的几种函数记录(intersect、symmetricDifference、union、subtract) 很久之前用过一次,后来就忘了。。。扎心,现在记录一下 PS:这几种函数其实不限于swift内的,在JavaScript、python、DB等其他语言,应该也有类似用法,这里我只简单讲了在swift内的用法。
1742 0
|
存储 Swift
Swift的类,及存储属性,计算发发样码
进入机械的学习模式, 就是把代友敲完。 以期能加深些记忆。
1251 0