UILabel自适应

以下代码以固定宽度,高度可变为例,先利用一个临时的label计算文本的宽度和高度,再将这个宽度和高度(CGSIze)赋值给一个要先显示的label(self.abstract)

- (void)fixWidthWithAbstractText:(NSString *)text

{

self.abstract.size = [self sizeLabelToFit:text width:APPLICATION_SCREEN_WIDTH - 30 height:CGFLOAT_MAX];

self.abstract.text = text;

[self.abstract sizeToFit];

}

/**

*  返回UILabel自适应后的size

*

*  @param aString 字符串

*  @param width   指定宽度

*  @param height  指定高度

*

*  @return CGSize

*/

- (CGSize)sizeLabelToFit:(NSString *)aString width:(CGFloat)width height:(CGFloat)height {

UILabel *tempLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, width, height)];

tempLabel.text = aString;

tempLabel.numberOfLines = 0;

tempLabel.lineBreakMode = NSLineBreakByWordWrapping;

[tempLabel sizeToFit];

CGSize size = tempLabel.frame.size;

size = CGSizeMake(ceilf(size.width),ceilf(size.height));

return size;

}

时间: 2024-10-27 12:20:47

UILabel自适应的相关文章

UILabel自适应文本,让文本自适应

//UILabel自适应文本的高度 UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 100, 300, 100)]; label.numberOfLines = 0; label.lineBreakMode = NSLineBreakByWordWrapping; label.text = @"本店于十一期间特推出一系列优惠,限时限量敬请选购!沙发:钻石品质,首领风范!床垫:华贵典雅,彰显时尚!尊贵而不失奢华,典雅却不失自

【转】UITableViewCell自适应高度 UILabel自适应高度和自动换行

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {    // 列寬    CGFloat contentWidth = self.tableView.frame.size.width;    // 用何種字體進行顯示    UIFont *font = [UIFont systemFontOfSize:13];       // 該行要顯示的內容    

UILabel 自适应

 CGFloat w = self.view.frame.size.width; UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 400, w, 0)]; [label setBackgroundColor:[UIColor grayColor]]; [label setNumberOfLines:0]; NSString *str = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMN

UILabel自适应高度

网上找了很多资料,都是iOS7.0之前的方法,现在苹果都已经弃用,不能使用了,小弟找了一个iOS7.0之后的方法,写下来给大家分享下 1 //创建UILabel 2 UILabel *label=[[UILabel alloc]init]; 3 4 //设置label可以换行 5 label.numberOfLines=0;//必须设置 //写好测试字符串 6 NSString * [email protected]"这些字都是用来测试UIlabel是否可以自适应高度的,所以无论我写了些什么你都

IOS开发中UILabel自适应大小显示的方法

1,根据label中的文字内容自动换行显示的方法 1>,认识两个属性 @property(nonatomic) NSInteger numberOfLines; @property(nonatomic) NSLineBreakMode lineBreakMode; 其中NSLineBreakMode为枚举类型 typedef NS_ENUM(NSInteger, NSLineBreakMode) { /* What to do with long lines */ NSLineBreakByWo

UILabel 自适应宽高

#import <UIKit/UIKit.h> @interface UILabel (UILabel_LabelHeighAndWidth) + (CGFloat)getHeightByWidth:(CGFloat)width title:(NSString *)title font:(UIFont*)font; + (CGFloat)getWidthWithTitle:(NSString *)title font:(UIFont *)font; @end #import "UIL

iOS7之后的UILabel自适应高度

UILabel  ios7 与ios7之前实现自适应撑高的方法,文本的内容长度不一,我们需要根据内容的多少来自动换行处理.在IOS7下要求font,与breakmode与之前设置的完全一致sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping 我自己最近写UILabel的自适应高度,发现以前的方法和枚举iOS7之后都被抛弃了,所以自己又总结了一下新的方法: //支持iOS7    UILab

UILabel自适应高、宽

根据Label和字体大小自适应高度 - (void)getHeightWithLabel:(UILabel *)label andFontSize:(CGFloat)size { label.numberOfLines = 0; NSMutableAttributedString *labelString = [[NSMutableAttributedString alloc] initWithString:label.text]; [labelString addAttribute:NSFon

UILabel 自适应高度,宽度

mLabel1 = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, 10, 1)]; mLabel1.text = @"my label 1, ok , ok , ok "; mLabel1.numberOfLines = 0; [mLabel1 sizeToFit]; 说明: 1. 如果只调用 sizeToFit,则label的位置不变,宽度会根据内容自适应,文本会只占1行 2. 如果设定numberOfLines = 0的同时调用si