UILabel текст не меняется? - PullRequest
       4

UILabel текст не меняется?

0 голосов
/ 26 января 2012

Невозможно изменить текст в lMenu_time (это UILabel) после того, как он был изначально установлен.Обратный звонок выполнен, я проверял это, но текст не изменится.??Я передаю указатель и корректирую UILabel.??

lMenu_time и многие другие определены в заголовочном файле.(здесь не видно)

UILabel *lMenu_time;

...

-(void) NewNumber:  (UIButton*) btn {       
    if (btn.tag == 102){
        iTime++;
        [lbl setText:@"time"];
        if(iTime > 20){iTime=1;}
        [lMenu_time setText:[NSString stringWithFormat:  @"Hold: %d", iTime]];
    }
    ....
}


- (void) menuItem: (UIView*)vMenu  menuButton:(UIButton*)bMenu menuLabel: (UILabel*)lMenu  menuPosX: (double)posX   menuLenX: (double)lenX  menuTagNum: (int)tagNum menuText: (NSString*)txtMenu{        
    bMenu = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [bMenu setFrame:CGRectMake(posX,0,lenX,25)];
    [bMenu setTag: tagNum];
    [bMenu addTarget:self action:@selector(NewNumber:) forControlEvents:UIControlEventTouchUpInside];
    [vMenu addSubview:bMenu];


    lMenu = [[[UILabel alloc] initWithFrame:CGRectMake(posX,0,lenX,25)] retain];
    [lMenu setBackgroundColor:[UIColor lightGrayColor]];
    [lMenu setText:[NSString stringWithFormat:  txtMenu]];
    [lMenu setFont:[UIFont systemFontOfSize:14 ]];
    [lMenu setTextAlignment:UITextAlignmentCenter];
    [vMenu addSubview: lMenu];
}

- (void) menuBuild{
    pSelf = self;
    theString = @"";


    UIView *vMenu = [[UIView alloc] initWithFrame:CGRectMake(0,0,320,25)];
    [pSelf.view addSubview:vMenu];
    [vMenu setBackgroundColor:[UIColor grayColor]]; 


    iTime = 2;
    [self menuItem:vMenu menuButton:bMenu_time menuLabel:lMenu_time menuPosX:240+20 menuLenX:60 menuTagNum:102  menuText:[NSString stringWithFormat:  @"Hold: %d", iTime]];

    ...    
}

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Вы связали объект метки с контроллером в Интерфейсном конструкторе?Если нет, я бы поспорил, что это проблема удержания.Вы не публикуете код, который создает объект UILabel, поэтому, если этого не сделано в IB, убедитесь, что вы вызываете retain, или он, безусловно, выйдет из области видимости при попытке его изменить.

0 голосов
/ 26 января 2012

Непосредственно перед тем, как попытаться установить следующий, попробуйте добавить

NSLog(@"My label is %@",lMenu_time);

Затем, если ваша консоль выдает «Моя метка (ноль)», вы будете знать, что проблема в том, что указатель на lMenu_time не передается должным образом.

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