很久沒有更新過博客了,最近在優化公司軟件操做體驗的時候,遇到一些問題,我想你們也都會遇到,因此在此寫一下,也給你們一個解決問題的參考:
你們都知道,在iOS7以後蘋果就添加了邊緣側滑返回這個功能,對於蘋果軟件的操做體驗有很好的提高,可是這種操做在有些地方會被系統屏蔽掉,如在一個viewController中添加了scrollView或者tableView的時候。因爲這些控件裏面都有ScrollView,邊緣側滑返回的時候會首先觸發ScrollView滾動而失效,致使側滑手勢失效,可是大部分時候咱們並不須要ScrollView的橫向滾動,因此這個時候有邊緣側滑返回就會很好的提高用戶體驗
要解決這個問題只須要在ViewDidload中添加如下代碼:
if ([self.navigationController respondsToSelector:@selector(interactivePopGestureRecognizer)]) {
self.navigationController.interactivePopGestureRecognizer.delegate = self;
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}
此方法能夠使在webView和ScrollView中的側滑失效問題得以解決,恢復iOS系統的側滑返回操做;優化操做體驗;
可是回到navigationController的最頂層的Controller的時候再次側滑以後,點擊某個要push頁面的地方,就會形成軟件假死,怎麼劃都沒用。
解決辦法:
回到navigationController最上層頁面的時候實現如下方法:
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
即在最上層頁面不側滑返回的時候把的話返回手勢關閉掉便可解決這個假死問題,