在单元格中加载图片时

时间:2018-10-01 09:14:32

标签: objective-c uitableview uiimageview

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    CountryCell *a_cell = [[[NSBundle mainBundle]loadNibNamed:@"CountryCell" owner:self options:nil]firstObject];
    NSDictionary *countryInfo = [arrCountryCode objectAtIndex:indexPath.row];
    a_cell.lblName.text = [countryInfo valueForKey:@"name"];
    a_cell.lblCode.text = [countryInfo valueForKey:@"dial_code"];
    a_cell.imgCountry.image = [UIImage imageNamed:[countryInfo valueForKey:@"code"]];
    a_cell.selectionStyle = UITableViewCellSelectionStyleNone;
    return a_cell;
}

我使用JSON文件,在该国家/地区移动代码,国家/地区名称和标志图片名称中添加了项目。

例如

{
     "name":"India",
     "dial_code":"+91",
     "code":"IN"
}

使用此代码为带有标记图像的所有国家/地区列表加载数据。当我滚动此tableview时,滚动不流畅。请帮助我轻松滚动带有图像的tableview。

2 个答案:

答案 0 :(得分:1)

NSData中使用UIImage意味着要花时间。尝试直接从URLUIImage

[imageviewname setImageWithURL:[NSURL URLWithString:@"http://www.someurl.com/path/to/image.jpg"]placeholderImage:placeholoderImage];

我希望您的项目中有AFNetworking。如果不是,则此代码将显示错误

答案 1 :(得分:0)

第一

IN不是用于可变代码的图像名称...

第二

UIImage imageNamed用于加载应用程序中添加的图像,而不是在线图像


如果要从网上加载图像,最好使用名为SDWebImage的库。

下面是您的通话方式

#import <SDWebImage/UIImageView+WebCache.h>

....

[imageView sd_setImageWithURL:[NSURL URLWithString:@"http://www.yourweb.com/path/to/image.jpg"]
         placeholderImage:[UIImage imageNamed:@"placeholder.png"]];

就这样...