我有以下viewDidLoad
方法:becomeFirstResponder很慢
- (void)viewDidLoad {
NSLog(@"didLoad");
if (self.loginField.text.length > 0) [self.passwordField becomeFirstResponder];
else [self.loginField becomeFirstResponder];
}
我也viewWillAppear
和viewDidAppear
添加日誌時間。
有些情況下,推動畫需要很長時間。我通過評論(並且沒有)if-else行來測量時間(請參閱:時間如下所示)。我不知道什麼可以在viewWillAppear
和viewDidAppear
調用之間減慢我的應用程序。
我試圖用Time Profiler(Instruments)來分析這段代碼,但它什麼也沒有顯示。我不知道該怎麼做,以更快地展示我的觀點。有任何想法嗎?
隨着becomeFirstResponder,第一呼叫
2014-07-11 16:51:41.090 didLoad
2014-07-11 16:51:41.133 willAppear
2014-07-11 16:51:44.223 did appear
diffAppear = 3090ms
隨着becomeFirstResponder,第二呼叫
2014-07-11 16:52:01.370 didLoad
2014-07-11 16:52:01.400 willAppear
2014-07-11 16:52:02.109 did appear
diffAppear = 709ms
沒有becomeFirstResponder,第一呼叫
2014-07-11 16:57:21.720 didLoad
2014-07-11 16:57:21.754 willAppear
2014-07-11 16:57:22.420 did appear
diffAppear = 666ms
沒有becomeFirstResponder,第二呼叫
2014-07-11 16:57:31.851 didLoad
2014-07-11 16:57:31.870 willAppear
2014-07-11 16:57:32.541 did appear
diffAppear = 671ms
'-becomeFirstResponser'通常爲需要時間的實際對象加載_input views_。另一方面,你應該調用這個方法_after_視圖在導航堆棧和視圖層次結構中,這意味着在這種情況下:_in_或_after_ -viewDidAppear:'方法,不要早。 – holex
但是,然後鍵盤不會出現immidietly – Szu
是的,這是事實,但這不是一個好習慣,正如你所見 - 非常緩慢。 – holex