1?讓SVPRogressHUD提示框自動消失
// 延遲2秒后消失
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)),dispatch_get_main_queue(), ^{ [SVProgressHUD dismiss];});
2?正確創建dispatch_time_t
用dispatch_after的時候就會用到dispatch_time_t變量,但是如何創建合適的時間呢?答案就是用dispatch_time函數,其原型如下:
1 | dispatch_time_t dispatch_time ( dispatch_time_t when, int64_t delta ); |
第一個參數一般是DISPATCH_TIME_NOW,表示從現在開始。
那么第二個參數就是真正的延時的具體時間。
這里要特別注意的是,delta參數是“納秒!”,就是說,延時1秒的話,delta應該是“1000000000”=。=,太長了,所以理所當然系統提供了常量,如下:
123 | #define NSEC_PER_SEC 1000000000ull #define USEC_PER_SEC 1000000ull #define NSEC_PER_USEC 1000ull |
關鍵詞解釋:
NSEC:納秒。
USEC:微妙。
SEC:秒
PER:每
所以:
NSEC_PER_SEC,每秒有多少納秒。
USEC_PER_SEC,每秒有多少毫秒。(注意是指在納秒的基礎上)
NSEC_PER_USEC,每毫秒有多少納秒。
所以,延時1秒可以寫成如下幾種:
dispatch_time(DISPATCH_TIME_NOW, 1 * NSEC_PER_SEC);
dispatch_time(DISPATCH_TIME_NOW, 1000 * USEC_PER_SEC);
dispatch_time(DISPATCH_TIME_NOW, USEC_PER_SEC * NSEC_PER_USEC);
最后一個“USEC_PER_SEC * NSEC_PER_USEC”,翻譯過來就是“每秒的毫秒數乘以每毫秒的納秒數”,也就是“每秒的納秒數”,所以,延時500毫秒之類的,也就不難了吧~
3?iOS:tableView的類型改為Grouped組頭出現默認的高度-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section{ return 0.1;}新聞熱點
疑難解答