Прокрутка ячейки UITableview вниз не плавная - PullRequest
0 голосов
/ 27 февраля 2019

Я ищу решение о моем собственном изображении ячейки UITableview.

Я загружаю немного информации (метка + UIimageview) в свою пользовательскую ячейку UITableview, которая отлично работает, но с iOS 12 она не плавная, пока я прокручиваю вниз (она отстает, когда я в первый раз прокручиваю вниз, а затемпока я прокручиваю, все гладко, возможно, это связано с изображением кэша.)

RecipeTableCell *cell = (RecipeTableCell *)[self.UITableView 
dequeueReusableCellWithIdentifier:CellIdentifier];

// Configure the cell...
if (cell == nil) 
{
    cell = [[RecipeTableCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
// Display recipe in the table cell
Recipe *recipe = nil;

 recipe = [recipes objectAtIndex:indexPath.row];
 recupereNomFavoris = [[recipes objectAtIndex:indexPath.row] valueForKey:@"favoris"];
 recupereImage = [[recipes objectAtIndex:indexPath.row] valueForKey:@"image"];
 recupereNom = [[recipes objectAtIndex:indexPath.row] valueForKey:@"name"];
 recupereLien = [[recipes objectAtIndex:indexPath.row] valueForKey:@"lien"];
 recupereGenre = [[recipes objectAtIndex:indexPath.row] valueForKey:@"genre"];

    }
}

//Display cells informations
cell.nameLabel.text = recipe.name;
cell.genre.text = recipe.genre;
cell.thumbnailImageView.image = [UIImage imageNamed:recipe.image];

Я попытался добавить асинхронное решение, но загрузка изображений занимает более 1 секунды.

dispatch_queue_t queue =dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH, 0ul);
dispatch_async(queue, ^{
    UIImage *image = [UIImage imageNamed:recipe.image];// Load from file or Bundle as you want                
    dispatch_sync(dispatch_get_main_queue(), ^{
        cell.thumbnailImageView.image = image;
    });
});

Размер всех изображений от 1 до 20 КБ, и я загружаю их локально.Я использую ограничения в моем IB (вес и ширина + ограничения макета).

Я пытался реализовать SDWEBIMAGE, но он позволяет только загружать изображение URL.

Есть предложения?Я борюсь с этой проблемой

1 Ответ

0 голосов
/ 27 февраля 2019

В этом случае изображение вызывает ошибку, вам нужно использовать ленивую загрузку изображения. Вы можете использовать следующий код библиотеки, чтобы установить ленивую загрузку, преимущество этого в том, что вы можете установить заполнитель изображения с назначением UIimageview для изображения,

SDWebimage: https://github.com/SDWebImage/SDWebImage

import SDWebImage

imageView.sd_setImage(with: your image path or data, placeholderImage: UIImage(named: "placeholder.png"))

AlamofireImage: https://github.com/Alamofire/AlamofireImage

imageView.af_setImage(withURL: image path, placeholderImage: UIImage(named: "placeholderImage"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...