使UILabel 的frame随文字多少而自适应大小
NSString*strTat=[NSStringstringWithString:data];intitat=[strTatlength]/18+1;UILabel*t...
NSString* strTat = [NSStringstringWithString:data]; int itat = [strTat length]/18 + 1;UILabel * tationDescriptionInfo = [[UILabel alloc]initWithFrame:CGRectMake(70, 22*(iadd+iprice+iattri+1)+14*(ipro+1), 240, 14*itat)]; [tationDescriptionInfo setNumberOfLines:itat];
展开
3个回答
2013-08-28
展开全部
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];// 这个大小可以随便写,反正后面会改变他label.backgroundColor = [UIColor redColor];label.font = [UIFont systemFontOfSize:40];//这个也随便设, 任何字体都会自动计算出 合适的大小label.text = @"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz";//label.text = @"1234";label.numberOfLines = 0;//这个一定要设成0CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14] c*****trainedToSize:CGSizeMake(200, 1000) lineBreakMode:UILineBreakModeWordWrap];CGRect rct = label.frame;rct.size = ssize;label.frame = rct;label.center = CGPointMake(160, 160);
展开全部
UILabel自适应里面的文字,自动调整宽度和高度:
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//必须是这组值,这个frame是初设的,没关系,后面还会重新设置其size。
[label setNumberOfLines:0]; //必须是这组值
NSString *s = @"这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
label.frame = CGRectMake(0.0, 0.0, labelsize.width, labelsize.height );
label.backgroundColor = [UIColor purpleColor];
label.textColor = [UIColor blackColor];
label.text = s;
label.font = font;
....//using the label. Such as add it to the super view.
[label release];//release the correct object.
下面代码获取NSString写进单行的宽度与高度:
CGSize singleLineStringSize = [s sizeWithFont:font];
ps:需要检查其执行效率。
UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];//必须是这组值,这个frame是初设的,没关系,后面还会重新设置其size。
[label setNumberOfLines:0]; //必须是这组值
NSString *s = @"这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。这个frame是初设的,没关系,后面还会重新设置其size。";
UIFont *font = [UIFont fontWithName:@"Arial" size:12];
CGSize size = CGSizeMake(320,2000);
CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];
label.frame = CGRectMake(0.0, 0.0, labelsize.width, labelsize.height );
label.backgroundColor = [UIColor purpleColor];
label.textColor = [UIColor blackColor];
label.text = s;
label.font = font;
....//using the label. Such as add it to the super view.
[label release];//release the correct object.
下面代码获取NSString写进单行的宽度与高度:
CGSize singleLineStringSize = [s sizeWithFont:font];
ps:需要检查其执行效率。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
UILabel* label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];
这个大小可以随便写,反正后面会改变他
label.backgroundColor = [UIColor redColor];label.font = [UIFont systemFontOfSize:40];
这个可以随便设, 任何字体都会自动计算出 合适的大小label.text =
@"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz";//label.text = @"1234";label.numberOfLines = 0;
这个一定要设成:0CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14] c*****trainedToSize:CGSizeMake(200, 1000) lineBreakMode:UILineBreakModeWordWrap];CGRect rct = label.frame;rct.size = ssize;label.frame = rct;label.center = CGPointMake(160, 160);
这个大小可以随便写,反正后面会改变他
label.backgroundColor = [UIColor redColor];label.font = [UIFont systemFontOfSize:40];
这个可以随便设, 任何字体都会自动计算出 合适的大小label.text =
@"1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopqrstuvwxyz";//label.text = @"1234";label.numberOfLines = 0;
这个一定要设成:0CGSize size = [content sizeWithFont:[UIFont systemFontOfSize:14] c*****trainedToSize:CGSizeMake(200, 1000) lineBreakMode:UILineBreakModeWordWrap];CGRect rct = label.frame;rct.size = ssize;label.frame = rct;label.center = CGPointMake(160, 160);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询