最近看到好多应用都有一个功能:连续点击tabBar刷新界面,我自己就研究了一下,今天来给大家分享一下。
思路:
1、实现UITaBarController的代理方法.
2、计算第一次点击与第二次点击时间间隔小于0.6s就认为连续点击(这个时间可以根据实际情况来定)
3、在点击对应的那个TabBar或者对应的那个[UIController class]发送通知进行界面刷新
主要代码:
- (BOOL)tabBarController:(UITabBarController *)tabBarController shouldSelectViewController:(UIViewController *)viewController NS_AVAILABLE_IOS(3_0)
{
UIViewController * vc = tabBarController.selectedViewController;
NSDate *date = [NSDate date];
if (vc == viewController) {
if (date.timeIntervalSince1970 - self.lastDate.timeIntervalSince1970 <= 0.5) {
if(tabBarController.selectedIndex == 0){
static NSString *tabBarDidSelectedNotification = @"tabBarDidSelectedNotification";
//当tabBar被点击时发出一个通知
[[NSNotificationCenter defaultCenter] postNotificationName:tabBarDidSelectedNotification object:nil userInfo:nil];
NSLog(@"gghtt77889900");
}
//如果双击,就将lastDate置成一个较小的值,防止多次重复点击造成的方法重复调用
self.lastDate = [NSDate dateWithTimeIntervalSinceReferenceDate:1000];
}else { //如果不是双击,记录最后一次点击时间
self.lastDate = date;
}
return false;
}else {
//如果换了按钮点击,记录下最后一次点击时间
self.lastDate = date;
} return true;
}
Demo我已经传到我的github上面了.模拟连续点击刷新界面
出自:笔尖下的诱惑