zoukankan      html  css  js  c++  java
  • Swift

    Swift - 计算文本高度

    效果

    源码

    //
    //  String+StringHeight.swift
    //  StringHeight
    //
    //  Created by YouXianMing on 16/8/30.
    //  Copyright © 2016年 YouXianMing. All rights reserved.
    //
    
    import UIKit
    
    extension String {
        
        /**
         Get the height with the string.
         
         - parameter attributes: The string attributes.
         - parameter fixedWidth: The fixed width.
         
         - returns: The height.
         */
        func heightWithStringAttributes(attributes : [String : AnyObject], fixedWidth : CGFloat) -> CGFloat {
            
            guard self.characters.count > 0 && fixedWidth > 0 else {
            
                return 0
            }
            
            let size = CGSizeMake(fixedWidth, CGFloat.max)
            let text = self as NSString
            let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil)
            
            return rect.size.height
        }
        
        /**
         Get the height with font.
         
         - parameter font:       The font.
         - parameter fixedWidth: The fixed width.
         
         - returns: The height.
         */
        func heightWithFont(font : UIFont = UIFont.systemFontOfSize(18), fixedWidth : CGFloat) -> CGFloat {
            
            guard self.characters.count > 0 && fixedWidth > 0 else {
                
                return 0
            }
            
            let size = CGSizeMake(fixedWidth, CGFloat.max)
            let text = self as NSString
            let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : font], context:nil)
            
            return rect.size.height
        }
        
        /**
         Get the width with the string.
         
         - parameter attributes: The string attributes.
         
         - returns: The width.
         */
        func widthWithStringAttributes(attributes : [String : AnyObject]) -> CGFloat {
            
            guard self.characters.count > 0 else {
                
                return 0
            }
            
            let size = CGSizeMake(CGFloat.max, 0)
            let text = self as NSString
            let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: attributes, context:nil)
            
            return rect.size.width
        }
        
        /**
         Get the width with the string.
         
         - parameter font: The font.
         
         - returns: The string's width.
         */
        func widthWithFont(font : UIFont = UIFont.systemFontOfSize(18)) -> CGFloat {
            
            guard self.characters.count > 0 else {
                
                return 0
            }
            
            let size = CGSizeMake(CGFloat.max, 0)
            let text = self as NSString
            let rect = text.boundingRectWithSize(size, options:.UsesLineFragmentOrigin, attributes: [NSFontAttributeName : font], context:nil)
            
            return rect.size.width
        }
    }
  • 相关阅读:
    2020软件工程作业02
    自我介绍
    Requests的使用
    爬虫基本原理
    2019春总结作业
    十二周作业
    十一周作业
    第十周作业
    intellij idea 的全局搜索快捷键方法
    Oracle多表关联
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5823893.html
Copyright © 2011-2022 走看看