Динамически отображать изображения в ячейках таблицы - PullRequest
0 голосов
/ 20 июля 2010

В моей заявке мне нужно отобразить изображение или изображения в ячейках таблицы в зависимости от их доступности в базе данных.Я сделал четыре веб-просмотра [чтобы показать изображения с URL-адресов], и я скрываю или показываю их в зависимости от их доступности.

Может также быть случай, когда изображения нет, когда я 'Я полностью скрываю веб-просмотры.

Но после случайной прокрутки мое приложение падает.Кроме того, во время прокрутки он показывает мне новые изображения поверх старых.Итак, я могу увидеть сначала одно изображение, затем, прокрутив одну и ту же ячейку, два изображения наведены друг на друга (какая-то часть более ранней фотографии видна) и так далее.Может ли это быть из-за повторного использования клеток?Каков идеальный способ решения этой проблемы?

РЕДАКТИРОВАТЬ:

Я использую следующий код:

noOfPhotos = [photos_array count];

if(noOfPhotos > 0){

    commentWhenWebviewNotThere.alpha = 0.0;         //Things that are not visible when images are there
    noOfCommentsWhenWebviewNotThere.alpha = 0.0;
    commentsLblWhenWebviewAbset.alpha = 0.0;

    image1.hidden = NO;
    image2.hidden = NO;
    image3.hidden = NO;
    image4.hidden = NO;

    commentsLblWhenWebview.alpha = 1.0;
    noOfComments.alpha = 1.0;
    comment.alpha = 1.0;

for(NSInteger x = 0; x < noOfPhotos; x++){
    photoName = [photos_array objectAtIndex:x];

    NSString *urlAddress = [NSString stringWithFormat:@"%@",photoName];   
    NSURL *url = [NSURL URLWithString:urlAddress];           
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];            

    if(x == 0){
        image1 = [[UIWebView alloc] initWithFrame:CGRectMake(10, comment.frame.origin.y - 5, 60, 60)];
    [image1 loadRequest:requestObj];              //Load the request in the UIWebView.
        [self addSubview:image1];
    }

    else if(x == 1){
        image2 = [[UIWebView alloc] initWithFrame:CGRectMake(88, comment.frame.origin.y - 5, 60, 60)];

    [image2 loadRequest:requestObj];              //Load the request in the UIWebView.
        [self addSubview:image2];

    }

    else if(x == 2){
        image3 = [[UIWebView alloc] initWithFrame:CGRectMake(169, comment.frame.origin.y - 5, 60, 60)];

        [image3 loadRequest:requestObj];              //Load the request in the UIWebView.
        [self addSubview:image3];

    }

    else if(x == 3){
        image4 = [[UIWebView alloc] initWithFrame:CGRectMake(251, comment.frame.origin.y - 5, 60, 60)];

        [image4 loadRequest:requestObj];              //Load the request in the UIWebView.
        [self addSubview:image4];

    }

}
}

else{
    commentWhenWebviewNotThere.alpha = 1.0;    //Should be visible when images are not there
    noOfCommentsWhenWebviewNotThere.alpha = 1.0;
    commentsLblWhenWebviewAbset.alpha = 1.0;

    commentsLblWhenWebview.alpha = 0.0;
    noOfComments.alpha = 0.0;
    comment.alpha = 0.0;

    image1.hidden = YES;
    image2.hidden = YES;
    image3.hidden = YES;
    image4.hidden = YES;
}

Заранее спасибо.

1 Ответ

0 голосов
/ 24 июля 2010

муфта !!!клетки используются повторно!Что делать, если ячейка используется повторно еще до того, как эти веб-представления получат результаты?пожалуйста, выньте операцию загрузки изображения из вашей ячейки и сделайте это в вашем контроллереЯчейка должна иметь четыре изображения.И контроллер должен передать изображения для них.

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