我的代码:
- (void)viewDidLoad
{
NSString *text = @"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfafjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfass"
"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfas"
"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfas";
myLabel = [self getTheHeight:text NameofFont:FONT_NAME fontSize:FONT_SIZE LineMode:UILineBreakModeWordWrap];
[super viewDidLoad];
}
- (UILabel *)getTheHeight:(NSString *)text NameofFont:(NSString *)font_name fontSize:(float)font_size LineMode:(UILineBreakMode)lineBreakMode
{
CGSize size = [text sizeWithFont:[UIFont fontWithName:FONT_NAME size:FONT_SIZE]];
UILabel *temp = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, size.height)];
[temp setFont:[UIFont fontWithName:FONT_NAME size:FONT_SIZE]];
[temp setLineBreakMode:UILineBreakModeWordWrap];
[temp setNumberOfLines:0];
temp.text = text;
return temp;
}我有一个返回格式化标签的方法。myLabel通过IB输入。问题是返回标签对myLabel没有影响。
代码中有什么错误?myLabel不会更改文本、框架等。
发布于 2011-04-27 14:09:48
尝尝这个,
将您的mylabel传递给函数如下...
- (void)viewDidLoad
{
NSString *text = @"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfafjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfass"
"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfas"
"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfas";
[self getTheHeight:text NameofFont:FONT_NAME fontSize:FONT_SIZE LineMode:UILineBreakModeWordWrap withLabel:myLabel];
[super viewDidLoad];
}
- (void)getTheHeight:(NSString *)text NameofFont:(NSString *)font_name fontSize:(float)font_size LineMode:(UILineBreakMode)lineBreakMode withLabel:(UILabel*)temp
{
CGSize size = [text sizeWithFont:[UIFont fontWithName:FONT_NAME size:FONT_SIZE]];
temp.frame = CGRectMake(0, 0, 320, size.height);
[temp setFont:[UIFont fontWithName:FONT_NAME size:FONT_SIZE]];
[temp setLineBreakMode:UILineBreakModeWordWrap];
[temp setNumberOfLines:1];
temp.text = text;
}发布于 2011-04-27 14:04:16
您没有修改myLabel的属性。这就是问题所在。
这个问题的一个解决方案是,将mylabel作为参数传递给函数,并使用该引用修改属性,让函数不返回任何内容。
发布于 2011-04-27 14:07:21
我认为最基本的问题是根据文本设置适当的标签高度。尝试此代码:-
它更简单,您不需要编写一些额外的方法
CGSize labelsize;
UILabel *commentsTextLabel = [[UILabel alloc] init];;
[commentsTextLabel setNumberOfLines:0];
[commentsTextLabel setBackgroundColor:[UIColor clearColor]];
NSString *text = @"fjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfafjkldsjfkladsjfkljsdaklfjadsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfassfjkldsjfkladsjfkljsdakljadsklfjdskjfdskjflkdsahfahf dkdfdsfasdfasdfasfjkldsjfkladsjfkljsdakladsklfjdskjfdskjflkdsahfahfdkdfdsfasdfasdfas";
[commentsTextLabel setFont:[UIFont fontWithName:@"Helvetica"size:14]];
labelsize=[text sizeWithFont:commentsTextLabel.font constrainedToSize:CGSizeMake(268, 2000.0) lineBreakMode:UILineBreakModeWordWrap];
commentsTextLabel.frame=CGRectMake(10, 24, 268, labelsize.height);
[commentsTextLabel release];设置你自己的constraintTosize和帧x和y坐标。
https://stackoverflow.com/questions/5799992
复制相似问题