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
        }
    }
  • 相关阅读:
    Codeforces Round #443 Div. 1
    linux中ps命令
    占cpu 100%的脚本
    检查Linux系统cpu--内存---磁盘的脚本
    jQuery对象的属性操作
    关于js的一些收集
    Linux命令集合
    使用python操作excel表格
    Linux7.3系统 升级python到3.6使用ping主机脚本
    一个别人的线程池的编写
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/5823893.html
Copyright © 2011-2022 走看看