0
UITableViewCell具有在其中顯示的UIImage。具有UIImage縮放性能的UITableViewCell
圖像從服務器獲取,並作爲NSData存儲在NSDictionary中。
此圖像使用UIImageGraphicsBeginImageContext調整爲非視網膜設備,如下所示。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *[email protected]"Cell";
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:cellID];
NSDictionary *myDictionary=[self.tableObject objectAtIndex:indexPath.row];
NSData *imgData=[myDictionary objectForKey:@"icon"];
UIImage *img=[UIImage imageWithData:imgData];
if(isRetina]){
cell.iconImageView.image=img;
}else{
CGRect imgRect=CGRectMake(0, 0, img.size.width/2.0, img.size.height/2.0);
UIGraphicsBeginImageContext(imgRect.size);
[img drawInRect:imgRect];
UIImage *newImg=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
cell.iconImageView.image=newImg;
}
}
它會更好的辦法,減少內存佔用還是應該把它存儲在磁盤上,然後從它訪問圖像,並將其分配給cell.iconImageView.image;
即使我有同樣的感覺,但我很擔心從讀取圖像性能磁盤在 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath – andyPaul
但是,它需要相當長的時間從磁盤讀取它,而不是在應用程序中。本身使用[UIImage imageNamed:@「a.png」]; – andyPaul