在做收藏按钮的时候,逻辑是这样的,
1、页面显示的时候,根据下载到的数据里面的“是否已收藏”关键字来设置收藏按钮的颜色,如果是收藏过的,则按钮会显示为已收藏的状态,反之....。
2、点击收藏按钮时,判断当前的收藏状态,已收藏则执行取消收藏方法,为收藏则执行收藏方法。
3、执行收藏或者取消收藏的方法,调用相应接口,更新收藏状态到服务器。
问题在第4步:
4、更新完收藏状态马上执行刷新数据方法,然后根据新的数据重新设置收藏按钮的状态。
问题:点完收藏按钮,发现收藏按钮状态为改变,但是手动再刷新一下页面,收藏按钮状态才更新过来。
分析:点击收藏按钮提交完收藏状态后,马上就下载新数据,这时后台的数据还未更新完成,所以下载到的依旧是旧的数据。
解决办法:向后台提交更新收藏状态请求后,延迟一下下再执行刷新页面的方法
//延迟0.5秒刷新数据
[self performSelector:@selector(downloadData) withObject:nil afterDelay:0.2f];
问题解决。
网友评论