iOS 7対応事例FastCheckin
Kosuke Ogawa
1
Kosuke Ogawa•@koogawa
•仕事・趣味でiPhone/Androidアプリを開発
•主な作品はFastCheckin、まりも等
2
FastCheckin
•素早く簡単にfoursquareにチェックインするためのアプリ
3
アプリアイコンの修正
4
角丸の調整5
6
6
表示崩れの修正
7
iOS 6 iOS 7
8
iOS 6 iOS 7
8
画面全体がナビゲーションバーの後ろに潜り込んでしまう
iOS 6 iOS 7
8
• iOS 7ではステータスバーを含む画面全体が表示領域となる
• 通常はview内のcontentInsetが自動調整されるため、このような現象は起こらない
9
• 独自にPullToRefreshを実装している場合などはcontentInsetを上書きしてしまう
10
対処法
• 全画面を表示領域とするのをやめる
• UIViewControllerのedgesForExtendedLayoutプロパティで設定可能
• どの位置のEdge(縁、端)を表示領域とするか設定できる
11
edgesForExtendedLayout
• UIRectEdgeNone
• UIRectEdgeTop
• UIRectEdgeLeft
• UIRectEdgeBottom
• UIRectEdgeRight
• UIRectEdgeAll (Default)
12
対処法• edgesForExtendedLay
outプロパティにUIRectEdgeNoneを設定
• 画面が潜り込むのを防止できる
• iOS 7の半透過効果が得られない!
13
•今回の対処法はあくまで暫定対応•各種Barが半透明にならないのはもったいない
• PullToRefreshの独自実装をUIRefreshControlに置き換える等して全画面表示を実現したい
14
その他追加されたプロパティ
• edgesForExtendedLayoutDefault = UIRectEdgeAll
• automaticallyAdjustsScrollViewInsetsDefault = YES
• extendedLayoutIncludesOpaqueBarsDefault = NO
15
かかった工数
16
•対応期間は1日•標準パーツを中心に使っていたので、影響が少なかった
•ナビゲーションバー等を自前で実装している場合は大変かも
17
おまけ失敗事例
18
19
20
ありがとうございました
21