• 计算字符串高度 swift的原生方法名,基本跟OC一致 OC旧方法, 用了会警告 CGSize size = [self.message sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(200, 9999)];OC新方法 CGSize ...

    计算字符串的高度
    swift的原生方法名,基本跟OC一致

    这里写图片描述
    OC旧方法, 用了会警告

        CGSize size = [self.message sizeWithFont:[UIFont systemFontOfSize:17] constrainedToSize:CGSizeMake(200, 9999)];

    OC新方法

        CGSize size = [topicModel.content boundingRectWithSize:CGSizeMake(278, MAXFLOAT) options: NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:15]} context:nil].size;

    swift

        boundingRectWithSize(size: CGSize, options: NSStringDrawingOptions, attributes: [NSObject : AnyObject]!, context: NSStringDrawingContext!) -> CGRect

        var size = CGRect();
        var size2 = CGSize();
        size = string.boundingRectWithSize(size2, options: NSStringDrawingOptions.UsesFontLeading, attributes: nil, context: nil);
    展开全文
  • let string:String = "swift计算字符串的宽度和高度swift计算字符串的宽度和高度swift计算字符串的宽度和高度。" let font:UIFont! = UIFont(name: "EuphemiaUCAS", size: 12.0) let attributes = ...
    // 计算字符串的宽度,高度
    let string:String = "swift中计算字符串的宽度和高度。swift中计算字符串的宽度和高度。swift中计算字符串的宽度和高度。"
    let font:UIFont! = UIFont(name: "EuphemiaUCAS", size: 12.0)
    let attributes = [NSFontAttributeName:font]
    let option = NSStringDrawingOptions.UsesLineFragmentOrigin
    let rect:CGRect = string.boundingRectWithSize(CGSizeMake(320.0, 999.9), options: option, attributes: attributes, context: nil)
    print("rect:\(rect)")
    rect:(0.0, 0.0, 313.078125, 31.67578125)


    展开全文
  • OC方法 iOS 7.0及以上 CGSize size = [string boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT)  options:(NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine|...

    OC方法 iOS 7.0及以上

    CGSize  size = [string boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT options:(NSStringDrawingUsesFontLeading|NSStringDrawingTruncatesLastVisibleLine|NSStringDrawingUsesLineFragmentOriginattributes:attribute context:nil].size;


    Swift方法 iOS 7.0及以上

            let size:CGSize = CGSize.init(width: CGFloat(MAXFLOAT) , height: CGFloat(MAXFLOAT))

            

            let rec:CGRect = string.boundingRect(with: size, options: NSStringDrawingOptions.usesFontLeading, attributes: [NSFontAttributeName : UIFont.systemFont(ofSize: font)], context:nil);


    展开全文
  • swift计算字符串的宽度和高度swift计算字符串的宽度和高度swift计算字符串的宽度和高度。"letfont:UIFont!=UIFont(name:"EuphemiaUCAS",size:12.0)letattributes=[NSF...

    // 计算字符串的宽度,高度

    letstring:String ="swift中计算字符串的宽度和高度。swift中计算字符串的宽度和高度。swift中计算字符串的宽度和高度。"

    letfont:UIFont! = UIFont(name:"EuphemiaUCAS",size:12.0)

    let attributes = [NSFontAttributeName:font]

    let option = NSStringDrawingOptions.UsesLineFragmentOrigin

    letrect:CGRect = string.boundingRectWithSize(CGSizeMake(320.0,999.9),options: option,attributes: attributes,context:nil)

    print("rect:\(rect)")

    展开全文
  • 最近工作中有一个显示文件路径信息需要标蓝显示,但是在路径信息中含有emoji时,发现部分路径没有标蓝,效果如下:因为Swift的String没有length方法,所以获取字符串长度是用count,然而OC的NSString用的则是.length...
    最近工作中有一个显示文件路径信息需要标蓝显示,但是在路径信息中含有emoji时,发现部分路径没有标蓝,效果如下:


    因为Swift的String没有length方法,所以获取字符串长度是用count,然而OC的NSString用的则是.length获取长度,在有emoji的情况下,长度取的就不对,导致出现上图路径没有标蓝的情况。

    附上苹果的技术文档

    NSString:


    String:



    Swift的关于计算长度的资料,里面专门拿emoji出来做了一个例子.png 

    我的理解是:NSString是由UTF-16单元构成,.length方法返回的是基于UTF-16的长度。Swift的count返回的只是Unicode字符个数,而Swift有专门的utf16.count是对应NSString的.length方法。而addAttribute里面的Rang对应的应该就是UTF-16的长度,即标蓝文件获取长度应该用下面的方法:

    NSMakeRange(0, pathStr.utf16.count)



    展开全文
  • //MARK: - 动态 计算行高,根据字符串的实际内容的多少 在固定的宽度和字体的大小,动态的计算出实际的高度 func textHeightFromTextString(text: String, textWidth: CGFloat, fontSize: CGFloat, isBold: Bool) ->...
  • /// 文本字号计算 指定单行字符串高度 /// @param height 返回单行可显示的最大字号 -(CGFloat)fontSizeFromHeight:(CGFloat)height { CGFloat fontSize = 0; for (int i = 0; i < (int)height ; i++) { ...
  • 字符串数组中筛选最长字符串 字符串部分加粗显示 字符串部分字符显示不同颜色 取字符串某一个字符后的部分(如:小数点后的字符) 截取字符串后几位
  • 为方便调用,封装普通字符串与富文本的宽高方法/**获取字符串尺寸--私有方法*/private func getNormalStrSize(str: String? = nil, attriStr: NSMutableAttributedString? = nil, font: CGFloat, w: CGFloat, h: ...
  • iOS计算字符串高度,有需要的朋友可以参考下。 方法一:ios7.0之前适用   ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 /**  @...
  • iOS 字符串长度计算boundingRectWithSize遇到 " \r\n"的时候,后面的字符串长度返回0。  在字符串显示的过程中,发现如果服务器传过来的字符串中包含了 “\r\n”就会发现这个字符串后面的字符全部看不见了,...
  • 写一个方法来继承String //自动控制文字换行及宽度 extension String { functextSizeWithFont(font: UIFont, constrainedToSize size:CGSize) -> CGSize { var textSize:CGSize!... if CGSizeEqualToSize(siz....
  • Swift 字符串工具类

    2019-09-13 05:15:09
    网络请求的时候会将get中的字符串进行URL转换 funcURLEncodedString()->String?{ letcustomAllowedSet=NSCharacterSet(charactersInString:"!$&'()*+,-...
  • //富文本 let attrStr = try! NSMutableAttributedString( data: (answer.content.data(using: .unicode, allowLossyConversion: true)!), options:[.documentType: NSAttributedStrin...
  • 新api计算高度不准确时,请注意参数问题, options,attributes CGRect rect= [str boundingRectWithSize:CGSizeMake(100, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin|...
  • //方法 func textSize(text : String , font : UIFont , maxSize : CGSize) -> CGSize{ return text.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSFontAttributeName : f
  • //根据文字获取高度  func caculateHeight(commemt : String, fontSize : CGFloat, showWidth : CGFloat) -&gt; CGFloat {  let font = UIFont.systemFont(ofSize: fontSize)  let size = commemt.boun...
  • Swift 字符串

    2018-03-05 13:49:35
    1、创建字符串 //使用字符串字面量 var stringA = "Hello, World!" print( stringA ) //String 实例化 var stringB = String("Hello, World!") print( stringB ) 输出结果 Hello, World!...
  • 通常是固定宽度或者固定高度,来看另一个的大小 固定宽度 var font = UIFont.systemFontOfSize(14); var attribute = NSMutableDictionary() attribute.setObject(font, forKey: NSFontAttributeName) var rect =...
1 2 3 4 5 ... 20
收藏数 1,653
精华内容 661