短くいうと、「人の指は斜めに動くから」で終わる話なんだけど、iOSの実際のUIについて具体例を用いて説明する。
例:ホーム画面
iOS 4までは、ホーム画面のスワイプ操作は横のみであり、縦の移動はなかったため、ユーザーは指の移動の角度を気にすることなく指を滑らせることができた。現在のiOSでは、縦スワイプにSpotlightが割り当てられているため、ユーザーは自分の指の軌跡が垂直に近い角度で動いているのか、それとも水平に近い角度で動いているのかを気にしなければならない。
例2: シェアシート
Safariやその他のアプリで共有ボタンを押すと現れる画面がシェアシートと呼ばれる画面である。シェアシートは3列で構成されていて、一番上はAirDrop、真ん中の列が他のアプリへの共有、一番下が画面遷移をせずにアプリ内で効果が現れるプラグインのようなボタンの列になっている。
三列しかないので、シェアシートの縦の長さはそれなりに短く、iPhoneを縦画面で使っているときは縦スクロールは発生しないが、4インチiPhoneで横画面で使うと縦スクロールが発生する。つまり、一番下のボタンを押すためには縦スクロールをしなければならない。
このとき、当然指を下から上に滑らせればいいわけだが、指の動きの傾き加減によっては横スクロールと判定され、縦スクロールができない。
困ったことに、初動が横スクロール判定されると、それ以降はどんなに大げさに垂直に動かしても、決して横スクロール判定が覆ることはなく、画面は横に移動し続ける。
例3:
アプリの切り替え画面。これが一番ひどい例。なぜひどいかというと、上の二つの例とは違い、この画面では縦スワイプの動作が破壊的だからである。言わずもがな、この画面で指を縦に滑らせると、アプリが強制終了される。未完了の処理があれば破棄されるし、書き込み途中のフォームも破棄される。
アプリの切り替え画面では指を素早く滑らせる(フリック)ことで高速にアプリの使用履歴をブラウズできる仕様だが、この時もやはり、初動が縦判定されれば、その後の指の動きがはっきりと水平に近いものであっても、縦フリックとして処理されてしまう。つまり、左から右にフリックするとき、画面に接触させた指がフリックを始める瞬間に僅かに上にぶれれば、過去に使ったアプリの画面が呼び出されることはなく、その時最初に指が触れたアプリのカードが勢いよくうえにとんでいくのである。
なお、iOS 4以前のアプリ切り替え画面では、アプリの強制終了は縦スワイプではなく、アプリアイコン長押し→バツボタンをタップであったためこのような問題は発生しなかった。
これらの悪いUIを改善するためには、ユーザーの意図をより正確に汲み取るように判定のアルゴリズムを改善することもできるかもしれないが、根本的にはやはり、同じ画面に縦の操作と横の操作が共存しなければ良いのである。