美文网首页
iOS 控制Label只显示一行半

iOS 控制Label只显示一行半

作者: ErHu丶 | 来源:发表于2017-06-01 15:51 被阅读63次
    /**
     控制显示一行半的方法
    
     @param originalContent 原内容
     @param labelWidth label宽度
     @return 展示的内容
     */
    - (NSMutableAttributedString *)getSubContentWithOriginalContent:(NSMutableAttributedString *)originalContent andLabelWidth:(CGFloat)labelWidth{
        
        NSAttributedString *subContent = nil;
        CGFloat maxLength = labelWidth * 1.5;//设置字符串最大长度为一行半
        CGFloat length = 0;
        for(int i = 0; i < [originalContent length]; i++)
        {
            subContent = [originalContent attributedSubstringFromRange:NSMakeRange(i,1)];
            // 计算宽度
            CGSize size = [subContent boundingRectWithSize:CGSizeMake(MAXFLOAT, 0.0) options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingTruncatesLastVisibleLine  context:nil].size;
            
            
            length = length + size.width;
            
            //此处截取maxLength,根据需求设置
            if (length >= maxLength) {
                NSMutableAttributedString *resultString = [[NSMutableAttributedString alloc] initWithAttributedString:[originalContent attributedSubstringFromRange:NSMakeRange(0, i)]];
                NSAttributedString *att = [[NSAttributedString alloc] initWithString:@" ..." attributes:self.attributeStyle];
                [resultString appendAttributedString:att];
                return resultString;
            }
        }
        return originalContent;
    }
    

    相关文章

      网友评论

          本文标题:iOS 控制Label只显示一行半

          本文链接:https://www.haomeiwen.com/subject/gwdefxtx.html