為什麼在 iOS 7 很多應用中的上下滑動有時會被識別為向右滑動?是應用本身的 bug 還是系統 bug?
--追加--知乎iPhone版的意見反饋還不好用..點了彈出郵件 瞬間收起..
--原回答--
做為親自調試過這個「bug」的開發者,說下我的經驗,首先這是系統識別導致的,需要開發者自己調試。我在iOS6之前就特別討厭這種交互方式,參見之前的秋秋聯繫人和群列表切換。進入7時代,不得不大面積使用這種方案。我自己的解決方式就是,將左側六60像素做為熱區,在這裡開始劃才會觸發左右操作。ps知乎客戶端這次更新完畢,左右劃和上下劃衝突的一逼。多次讓我想摔手機TAT
當然不是 「系統 bug」.
最簡單的解決方案就是用標準 「screen-edge gesture recognizer」 返回手勢,從屏幕邊緣開始的滑動才有效。就能避免這種 「上下滑動被識別成左右滑動」 的低級故障。
即便不是使用 「screen-edge gesture recognizer」 也不至於發生這樣的錯誤。iOS 7 UI Transition 裡面就有關於這個手勢識別衝突錯誤等意外的詳細介紹和具體避免的解決實施方案:
... In iOS 7, UIGestureRecognizerDelegate introduces two methods that allow failure requirements to be specified at runtime by a gesture recognizer delegate object [...] iOS 7 introduces similar methods in UIGestureRecognizerSubclass (described inUIGestureRecognizer Class Reference), to give subclasses the ability to define class-wide failure requirements. [...] For both methods, the gesture recognizer delegate is called once per recognition attempt, which means that failure requirements can be determined lazily. It also means that you can set up failure requirements between recognizers in different view hierarchies. [...] you might want all other relevant gesture recognizers associated with that view"s subtree to require the screen-edge gesture recognizer to fail so you can prevent any graphical glitches that might occur when the other recognizers get canceled after starting the recognition process...
via iOS 7 UI Transition Guide
我已經忍受很久了,不知道是怎麼測試通過的— —這顯然不是個bug,明顯是設計師和工程師共同的問題,嘿,就是你們兩個,這麼難用你老闆你家人知道嗎(^◇^),吐槽開玩笑。確實這個東西交互和功能實現沒有配合好。功能設計之初應該好好參考IOS7的相關文檔,人家那麼多高手不是打醬油的。設計師一定要用文檔把設計細節落實到文檔中,最好寫到每個像素,這個階段交互和UI要配合好,意見統一併一致。功能實現:工程師當然是先看文檔再敲代嗎。但是那又臭又長的文檔確實很難詳細去閱讀,所以在功能驗收的時候交互最好和工程師確認一下細節。
然後兩個人要好好測測多使用這個功能,最好測到吐,根據體驗做進一步的調整。
可能你們做的時候有這個流程,但是肯定沒有測到吐。麻煩你們快點改改,否則姐用的要吐了,你知道看到一半被劃舟,很想摔手機好嗎,不行姐來幫你們改,吐槽結束,但是真的不能忍了-_-#不是答案。
可以點左上返回上一界面再點進去基本就好了,如果是看一篇長答案看到一半出現這個現象肯定不想再出去重進啊,所以那麼多人說想摔手機。
個人的解決方法:出現那種狀況的時候用雙指操作,反正我這樣上下滑的時候它就不會再識別成左右了。媽媽再也不用擔心我們摔手機了。希望iOS更加完善吧。這些app都是逼我用左手的節奏
新的知乎客戶端尤其嚴重,我早就想給管理員發私信說一下這事,奈何發不了,求解決啊!!!
我本來刪除了自己回答的答案,刪除答案的主要原因是看了@David Chang 等引經據典,中英文一起上,招架不住,難道是我沒好好看開發文檔(其實我壓根就沒看)。剛看到意見相似的回答被摺疊了。覺得有必要再發一次(偷懶的)聲音再上來回答一遍吧,我和大家的感受一下,你只要深度使用某一個App你就會發現那個App讓人無法忍受。作為一個ios6下幾乎不會碰到的問題,ios7升級後這些插屁股的活本就該系統自己來解決。(所以越受歡迎的App責任越大壓力越大,系統的一點點不友好,全部轉嫁到了每一個用戶手上和心裡和深深的腦力里。)
舉個iOS7蘋果把自己之前的屁股擦了一遍的栗子:在iOS6之前,開發白皮書里好像有一條是說,啟動頁面盡量做成和啟動後的頁面一致,iOS7就自己把這件事給幹了,這個是非常贊的[,不過我的用戶體驗並沒有增加愉悅感,或許土豪金的啟動延時很短,但是我們屌絲還用這4級別的呢])。所以我還是把這個問題歸結為系統級別的bug。也可能是知乎--------------說了這麼多,好吧,其實我有點看錯題目了,不過回答的內容應該也差不多。我本能的看成了上下滑動不靈活了。------或許知乎App自己對UIScrollview深度定製過的原因出現的概率高一點也是有可能的吧,我想。以上。原刪除答案系統bug,不知道為什麼一直沒能解決好。希望7.1能改善吧。不止zhihu,新浪微博等都會這樣,我自己的app也偶爾會這樣,ios6下順暢的不得了。推薦閱讀:
※你對 OS X 10.11 / iOS 9 的預設中文介面顯示字體有哪些期待?
※iOS 10.2.1正式發布 修複數十個安全漏洞
※聊聊Apple對使用JSPatch的警告
※ios11又更新了,這些控制項你都有嗎?