我的桌子上装满了tableviewcells,其中有一个imageview作为高亮颜色。
有时当我点击一个单元格时,imageview会稍微加载。我想知道如何减少滞后?
我有以下内容:
cell.selectedBackgroundView = [DataSingleton sharedMySingleton].highlightView;
在方法内:
-(void) tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath{
注意:每次点击它都会调用单例。我将尝试在本地设置图像以查看是否会产生影响。
编辑:所以我在viewDidLoad中设置了本地的imageview,它似乎反应更快。我想我的问题是单身,但我希望能够立刻改变所有高光图像。有没有办法让一个全局变量快速加载?
答案 0 :(得分:1)
我不太确定,但下面的表现可能有所帮助。
而不是在willDisplayCell方法中编写代码。您可以使用cellForRowIndexPath方法编写。
类似这样的事情
static NSString *CellIdentifier = [NSString stringWithFormat:@"MyIdentifier%d",indexpath.row];
UITableViewCell *cell = [tv dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.selectedBackgroundView = [DataSingleton sharedMySingleton].highlightView;
}
在为该单元格分配内存时,只设置了一次selectedbackgroundView。您需要使用reuseidentifier。
希望得到这个帮助。