首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UILabel不变

UILabel不变
EN

Stack Overflow用户
提问于 2011-04-27 13:56:59
回答 3查看 1.5K关注 0票数 0

我的代码:

代码语言:javascript
复制
- (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不会更改文本、框架等。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-27 14:09:48

尝尝这个,

将您的mylabel传递给函数如下...

代码语言:javascript
复制
- (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;
}
票数 1
EN

Stack Overflow用户

发布于 2011-04-27 14:04:16

您没有修改myLabel的属性。这就是问题所在。

这个问题的一个解决方案是,将mylabel作为参数传递给函数,并使用该引用修改属性,让函数不返回任何内容。

票数 0
EN

Stack Overflow用户

发布于 2011-04-27 14:07:21

我认为最基本的问题是根据文本设置适当的标签高度。尝试此代码:-

它更简单,您不需要编写一些额外的方法

代码语言:javascript
复制
    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坐标。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5799992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档