所以我查看了Anypic(https://github.com/ParsePlatform/Anypic/blob/master/Anypic-iOS)来源并尝试复制这个想法。
我有一个自定义单元格,这个单元格有setIsNew:isNew就像Anypic教你一样。我的PFQueryTableViewController包含与lastRefresh属性相关的所有代码。
但lastDfresh在objectsDidLoad方法中更新,该方法在重新加载单元格之前调用。
的ViewController:
- (void)viewDidLoad
{
[super viewDidLoad];
self.lastRefresh = [[NSUserDefaults standardUserDefaults] objectForKey:@"lastRefresh"];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
PFObject *obj = self.objects[indexPath.section];
...
if ([self.lastRefresh compare:obj.createdAt] == NSOrderedAscending) {
[cell setIsNew:YES];
} else {
[cell setIsNew:NO];
}
return cell;
}
-(void)objectsDidLoad:(NSError *)error
{
[super objectsDidLoad:error];
self.lastRefresh = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:self.lastRefresh forKey:@"lastRefresh"];
[[NSUserDefaults standardUserDefaults] synchronize];
}
自定义单元格:
- (void)setIsNew:(BOOL)isNew
{
if (isNew) {
[self.mainView setBackgroundColor:[UIColor colorWithRed:1 green:0.9216 blue:0.5608 alpha:0.5]];
} else {
[self.mainView setBackgroundColor:[UIColor whiteColor]];
}
}
没有任何结果。 lastRefresh总是晚于object.createdAt,所以所有单元格看起来都完全一样。
我做错了什么?或者还有另一个聪明的解决方案吗?
如果这是一个noob问题,谢谢你,对不起。