выпуск освежающего uibutton в scrollview - PullRequest
0 голосов
/ 29 марта 2012

Я пытаюсь обновить фоновое изображение uibutton, это код для кнопки создания

- (void) disegnaAnteprime {

int x = 2;
int y = 2;
int i = 0;

scrollView.contentSize = CGSizeMake(self.view.frame.size.width, 10*103);

for (i=0; i < arrayProgetti.count;i++) {

    NSNumber *indice = [NSNumber numberWithInt:i];

    elemento = [arrayProgetti objectAtIndex:i];

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    [button setTitle:[elemento objectForKey:@"Titolo"] forState:UIControlStateNormal];

    [button addTarget:self action:@selector(openPdf:) forControlEvents:UIControlEventTouchUpInside];
    [button setContentVerticalAlignment:UIControlContentVerticalAlignmentBottom];
    button.tag = i;

    NSURL *indirizzoImmagine = [NSURL URLWithString:[elemento objectForKey:@"IndirizzoIcona"]];

    NSLog(@"Indice i: %d",i);

    NSData *imageData = [cache cachedResponseDataForURL:indirizzoImmagine]; 

    if (imageData==nil) {
        [self loadURL:indirizzoImmagine idElementoBottone:indice tipoRichiesta:NO];
    }
    else {
        [button setImage:[UIImage imageWithData:imageData] forState:UIControlStateNormal];        
    }

    button.frame = CGRectMake(30, y, 190, 190);
    y = y + 192;

    [self.scrollView addSubview:button];
}

}

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

- (void)requestFinished:(ASIHTTPRequest *)request
{
      int tag = [[request.userInfo objectForKey:@"TagBottone"] intValue];        
      NSLog(@"Tag: %d",tag);

      [(UIButton*)[self.scrollView viewWithTag:tag] setTitle:@"hello" forState:UIControlStateNormal];        

}

но я получаю эту ошибку

[UIScrollView setTitle: forState:]: нераспознанный селектор отправлен в экземпляр 0x8179eb0 2012-03-28 23: 54: 40.477 iVision [2269: 15b03] * Завершение работы приложения из-за невыполненной исключительной ситуации NSInvalidArgumentException, причина: '- [UIScrollView setTitle: forState:]: нераспознанный селектор, отправленный экземпляру 0x8179eb0' * Стек первого вызова вызова: (0x1c5f052 0x37f3d0a 0x5x5x5x1 0x1x5x10x1c60e72 0x37d0b 0x1c60e72 0x12879ef 0x1c3397f 0x1b96b73 0x1b96454 0x1b95db4 0x1b95ccb 0x1df1879 0x1df193e 0x96fa9b 0x3560 0x2d85)

101 * *редактировать: сейчас я пытаюсь только изменить titletex.

спасибо!

1 Ответ

1 голос
/ 29 марта 2012

Это означает, что вы пытаетесь использовать setTitle: forState: в scrollView, а не в UIButton.Вы пытались отделить код:

UIButton * btn = (UIButton*)[self.scrollView viewWithTag:tag];
[btn setTitle:@"hello" forState:UIControlStateNormal];

Вы также можете проверить, успешно ли выполняется ваше приведение:UIScrollView имеет несколько подпредставлений сам.Я бы начал ваши теги со значения 100, а затем просто добавить 100 к результату запроса.Это позволяет избежать конфликтов с существующими подпредставлениями.

Надеюсь, это поможет.

...