- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个应用程序可以加载很多大图像。当我延迟加载它们时,甚至在加载图像之后,单元格也不会加载它们,直到我将手指从屏幕上移开。我在 UIScrollViewDelegate
方法 scrollViewDidEndDragging
和 scrollViewDidEndDecelerating
中调用我的 downloadImageForVisiblePaths
函数,除此之外,我还设置UITableView
的 cellForRowAtIndexPath
方法中的图像如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
// Code to load reusable custom cell
CustomObject *object = (CustomObject*) [self.tableArray objectAtIndex: indexPath];
if(!object.mainImage){
[self downloadImageForIndexPath:indexPath];
cell.mainImageView.image = [UIImage imageNamed:@"placeholder"];
}else{
cell.mainImageView.image = object.mainImage;
}
return cell;
}
downloadImageForIndexPath
如下所示:
-(void) downloadImageForIndexPath:(NSIndexPath*) indexPath{
UIImage *loadedImage = [[UIImage alloc] init];
// take url and download image with dispatch_async
// Once the load is done, the following is done
CustomCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
cell.mainImageView.image = loadedImage;
CustomObject *object = (CustomObject*) [self.tableArray objectAtIndex: indexPath];
object.mainImage = loadedImage;
dispatch_async(dispatch_get_main_queue(), ^{
[self.tableVIew reloadData];
});
}
我看不出哪里错了。即使手指在屏幕上,我也需要加载图像。这种行为类似于图像在 Google+、Instagram 或 Facebook 等应用程序上的加载方式。
任何指点将不胜感激。
最佳答案
这很难说,因为您没有包含 downloadImageForIndexPath
的所有代码,但看起来您正在从后台线程将图像分配给单元格(您不应该触摸 UI 控件来自后台线程)。此外,如果您直接更新单元格,则无需调用 reloadData
。
我还建议使用 SDWebImage用于在表格 View 中显示远程图像。
关于ios - UITableView 延迟加载的图像在手指关闭之前不会加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19093349/
我用 cocos2d 制作了我的第一个应用程序,所以我在这里很新 我的第一个问题: 我不会让物体(船)跟随我的手指。 -(void) ccTouchMoved:(UITouch *)touch wit
如果某人将右手压在扫描仪的玻璃上进行扫描,结果将如下所示: (没有橙色和白色注释)。我们如何确定某人的 2D:4D ratio从他们的手的图像? 最佳答案 您已经标记了这个很棒的 opencv - 我
我的 View Controller 中有几个 UIScrollView。我想覆盖一个通过 UIPanGestureRecognizer 捕获 2 根手指滑动的 View ,它不会记录 UIScrol
现在这真是令人困惑...在不离开页面的情况下更新 mysql 数据库...我有 3 位代码。 head 标签中的 javascript、body 中的操作按钮以及要在另一个页面上执行的代码。以下是三个
我有这段代码是从 Style clipboard in flutter 得到的 showMenu( context: context, // TODO: Positio
我是一名优秀的程序员,十分优秀!