UILabel не меняется - PullRequest
       16

UILabel не меняется

0 голосов
/ 27 апреля 2011

мой код:

- (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 не изменяет текст, фрейм и т. д.

Ответы [ 3 ]

1 голос
/ 27 апреля 2011

Попробуйте это,

Передайте свой 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;
}
0 голосов
/ 27 апреля 2011

Я думаю, что основная проблема состоит в том, чтобы установить правильную высоту этикетки в соответствии с текстом.Попробуйте этот код: -

Это проще, и вам не нужно писать какие-то дополнительные методы

    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];

установите свои собственные ограниченияTosize и frame x и y cordinate.

0 голосов
/ 27 апреля 2011

Вы не изменяете свойства myLabel . Вот в чем проблема.

Решением этой проблемы является передача mylabel в качестве параметра функции и изменение свойств с этой ссылкой, и пусть функция ничего не возвращает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...