久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

根據(jù)文字內(nèi)容多少來(lái)確定label的高度

 沒(méi)原創(chuàng)_去搜索 2015-12-23
1.新建類別
UILabel+BoundingRect.h 

#import


@interface UILabel (BoundingRect)


//初始化的size,,size中高度或者寬度為0

-(CGRect)boundingRectWithInitSize:(CGSize)size;


@end


UILabel+BoundingRect.m

#import "UILabel+BoundingRect.h"


@implementation UILabel (BoundingRect)


-(CGRect)boundingRectWithInitSize:(CGSize)size

{

  

    self.lineBreakMode=NSLineBreakByWordWrapping;

    

    CGRect rect=[self.text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:self.font,NSFontAttributeName, nil] context:nil];

    

    return rect;

}


 

@end


 //給定寬度,,要知道label的高度

    self.label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 0)];

    self.label.font=[UIFont fontWithName:@"HelveticaNeue" size:18.0f];

    self.label.text=@"瀟灑哥:最近怎樣?在那里呆的還習(xí)慣嗎,?哪天聚一聚,,一起吃頓飯";

    self.label.textColor=[UIColor darkGrayColor];

    [self.view addSubview:self.label];

    

    self.label.numberOfLines=0; //PS:這句很主要,否則默認(rèn)行數(shù)為1,,只顯示一行文字后面截?cái)嗔司蜎](méi)有了

    CGRect myRect=[self.label boundingRectWithInitSize:self.label.frame.size];

    self.label.frame=CGRectMake(100100200, myRect.size.height+100);



反之,,也可以固定高度,來(lái)確定label的寬度。

boundingRect求出的高度總是為0,,
原因沒(méi)有設(shè)置好text font (或者沒(méi)有固定寬度)
text font 一定要在boundingRect方法前設(shè)置好



==========




iOS7中用以下方法

- (CGSize)sizeWithAttributes:(NSDictionary *)attrs;


替代過(guò)時(shí)的iOS6中的- (CGSize)sizeWithFont:(UIFont *)font 方法


    // iOS7_API_根據(jù)文字 字?jǐn)?shù)動(dòng)態(tài)確定Label寬高

    
    // 設(shè)置Label的字體 HelveticaNeue  Courier
    UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:24.0f];
    _nameLabel.font = fnt;
    // 根據(jù)字體得到NSString的尺寸
    CGSize size = [_nameLabel.text sizeWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil]];
    // 名字的H
    CGFloat nameH = size.height;
    // 名字的W
    CGFloat nameW = size.width;
    _nameLabel.frame = CGRectMake(0, 0, nameW,nameH);



iOS7中用以下方法boundingRectWithSize:options:attributes:context:替代過(guò)時(shí)的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
// 4,根據(jù)正文內(nèi)容多少,動(dòng)態(tài)確定正文content的frame
    
    // 寬度W
    CGFloat contentW = self.bounds.size.width - _content.frame.origin.x - kMargin;
    // label的字體 HelveticaNeue  Courier
    UIFont *fnt = [UIFont fontWithName:@"HelveticaNeue" size:18.0f];
    _content.font = fnt;
    _content.numberOfLines = 0;
    _content.lineBreakMode = NSLineBreakByWordWrapping;
    // iOS7中用以下方法替代過(guò)時(shí)的iOS6中的sizeWithFont:constrainedToSize:lineBreakMode:方法
    CGRect tmpRect = [_content.text boundingRectWithSize:CGSizeMake(contentW, 1000) options:NSStringDrawingUsesLineFragmentOrigin attributes:[NSDictionary dictionaryWithObjectsAndKeys:fnt,NSFontAttributeName, nil] context:nil];
    
    // 高度H
    CGFloat contentH = tmpRect.size.height;
    NSLog(@"調(diào)整后的顯示寬度:%f,顯示高度:%f"contentW,contentH);
    _content.frame = CGRectMake(0, 0, contentW,contentH);

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多