У меня есть следующее приложение, похожее на чат, поэтому я программно создаю некоторые ярлыки, изображения и кнопки.
Проблема в том, что те, которые я добавляю при запуске, показывают, а те, которые я добавляю позже, - нет.
Это как представление нуждается в обновлении или что-то.
Если я вызываю ту же функцию рисования из IBAction, установленного для кнопки ... она отображает содержимое ...
если это происходит из события потока, которое ищет новые события и уведомляет класс через:
[[NSNotificationCenter defaultCenter] postNotificationName:@"NewMessageNotification" object:self userInfo:values];
тогда ничего не показывает.
Но функция на самом деле вызывается (я проверил с помощью отладчика) Может ли быть так, что она не использует правильный экземпляр представления?
вот мой макет:
и вот моя функция, которая создает элементы управления:
UILabel *labelMessage = [[UILabel alloc] initWithFrame:CGRectMake(left+5, lastcalculatedHeight-5, 220, calculatedHeight)];
[labelMessage setText:msg];
[labelMessage setFont:[UIFont fontWithName:@"Arial" size:12.0]];
[labelMessage setLineBreakMode:UILineBreakModeWordWrap];
[labelMessage setTextColor:[UIColor blackColor]];
[labelMessage setAdjustsFontSizeToFitWidth:NO];
[labelMessage setNumberOfLines:floor( msg.length / 40 )+2];
[labelMessage setBackgroundColor:[UIColor clearColor]];
[scrollView addSubview:labelMessage];
[labelMessage release];
UIButton *buttonTime = [[UIButton alloc] initWithFrame:CGRectMake(left, lastcalculatedHeight+40, 50, 20)];
[buttonTime setBackgroundImage:[[UIImage imageNamed:@"hour_bubble.png"] stretchableImageWithLeftCapWidth:9 topCapHeight:13] forState:UIControlStateDisabled];
[buttonTime setFrame:CGRectMake(left_hour_button, lastcalculatedHeight+calculatedHeight-30, 55, 25)];
[buttonTime setTitle:date2 forState:UIControlStateDisabled];
[buttonTime setTitleColor:[UIColor blackColor] forState:UIControlStateDisabled];
buttonTime.titleLabel.font=[UIFont fontWithName:@"Helvetica" size:8.0];
buttonTime.titleLabel.lineBreakMode= UILineBreakModeWordWrap;
[buttonTime setEnabled:FALSE];
[scrollView addSubview:buttonTime];
[buttonTime release];
Я также хочу автоматически прокрутить uiscrollview до дна, когда я вызываю эту функцию ... но она не работает, как будто симулятор сходит с ума, когда я вызываю следующее:
Я пытался использовать
CGPoint offset = CGPointMake(0,lastcalculatedHeight);
[scrollView setContentOffset: offset animated: YES];
Я получил это от
UIScrollView программно прокрутить вниз