Your SlideShare is downloading. ×
やはりお前らのiOS7対応は間違っている
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

やはりお前らのiOS7対応は間違っている

30,057
views

Published on

この資料は2014.1.15にクックパッド主催ヤフー開催のiOS/Android Tips交換会potatotips #3で発表した資料です。 https://github.com/potatotips/potatotips/wiki/Potatotips-3

この資料は2014.1.15にクックパッド主催ヤフー開催のiOS/Android Tips交換会potatotips #3で発表した資料です。 https://github.com/potatotips/potatotips/wiki/Potatotips-3

Published in: Technology

0 Comments
71 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
30,057
On Slideshare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
59
Comments
0
Likes
71
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. やはりお前らのiOS7対応 は間違っている potatotips #3 株式会社キュリオシティソフトウェア 今城 善矩
  • 2. 自己紹介 • 株)キュリオシティソフトウェア代表取締役(@yimajo) • • iOSアプリの受託開発とアクセス解析サービス作ってます 最近趣味とか仕事でiOS7に対応させたアプリは3つ、新規に iOS7用に作ったのは1つ • QiitaにiOS7ネタも公開してます http://qiita.com/yimajo
  • 3. お前らが何を間違っているか
  • 4. • iOS7でUINavigationBarにself.viewが潜り込むという話 http://techblog.yahoo.co.jp/ios/ios7yahoo/ • 対処方法としてUIViewControllerのプロパティ edgesForExtededLayoutをUIRectEdgeNoneとしてる • これはけっして良いやり方じゃない
  • 5. 色んなブログでも
  • 6. iOS7対応でself.viewが潜り込まないようにと edgesForExtededLayout=UIRectEdgeNone にしたり IBでUnder Top Barsをチェック外したり してて
  • 7. 「これのデメリットは すりガラス表現が失われる ことです」 とか書いちゃってる
  • 8. お前ら釣られすぎ
  • 9. m9(^Д^)
  • 10. パターン別 ベストプラクティスを 考えてみた
  • 11. Adjust Scroll View Insets UITableViewContr oller UIViewControllerで View配置 Under Top Bars ✓チェック ✓チェック まずiOS7用にコン ✓チェック ✓チェック UIScrollViewなど で全画面写真表示 したい時 iOS6の対応には チェック外す ✓チェック ポーネント配置し 直しからの 調整 iOS6のみUse Full ScreenをYES
  • 12. パターン別に説明する前に
  • 13. まずiOS7から追加された UIViewControllerのプロパティの 基本的なことを振り返れ
  • 14. Adjust Scroll View Insetsとは • これをチェックしていると、 自動的にUIScrollView系の contentInsetsを調整してくれ る • ナビゲーションバーがあれば、 ナビゲーションバーの高さ分だ けcontentInsets.topを調整
  • 15. Under Top Barsとは • Viewの上端をどこから始める かという設定 • UnderはZ軸での奥という意味 • UIRectEdgeNoneはこの チェック全部外すことになる
  • 16. 実際の設定を交えてベストプラク ティスの説明をしたほうがわか りやすいかもしれん
  • 17. UITableViewの場合 • IBでAdjust Scroll View Insetsをチェックする • • automaticallyAdjustsScrollViewInsets = YES; IBでUnder Top Barsをチェック • edgesForExtededLayout = UIRectEdgeTopもしくは UIRectEdgeAll
  • 18. Adjust Scroll View Insetsと Under Top Barsを共にチェックする TableViewはTopからはじまり、InsetsTopが調整される のでNavigationBarの裏側にも表示されスクロール領域 になってくれる
  • 19. Adjust Scroll View Insetsがどうであれ Under Top Barsがオフの時 Under Top Barsがオフの時、TableViewはNavigationBar のy軸下側からはじまるのでスクロール領域にならず、 黒の背景が半透明で表示され黒っぽくなる。 決して「すりガラス表現が失われる」わけではない
  • 20. UIViewControllerの 場合 • プロパティはUITableVIewのときと同じ • view上の各コンポーネントの座標値を全画面iOS7基準で 調整する(下げる) • iOS6はその座標値に対して ⊿ で調整する
  • 21. UIScrollViewやUIColletionView で写真などの全画面表示をしたい 場合のみ • IBでAdjust Scroll View Insetsをチェック外す • • automaticallyAdjustsScrollViewInsets = NO; IBでUnder Top Barsをチェック(UIRectEdgeNone駄目) • edgesForExtededLayout = UIRectEdgeTop;
  • 22. Adjust Scroll View Insetsをチェックせず Adjust Scroll View Insetsと Under Top Barをチェックした場合 Under Top Barを共にチェックした場合 右図Adjust Scroll View Insetsをチェックすると 全画面表示のUIScrollViewもInsetsを考慮されてしまう タップしたらナビゲーションバーが消える場合、 画像は上に向かって動く
  • 23. iOS6も対応する場合 • iOS7をメインそれを元にiOS6に対応する(逆じゃない) • iOS7は基本全画面表示状態でデザイン調整、必要であれ ば配置を修正し、iOS6は でY座標位置を調整する • Scroll系なら でなくInsetsで対応できる • iOS6で写真などを全画面表示したい場合は今までどお り、非推奨のUse Full Screenを使う
  • 24. まとめ
  • 25. UIScrollView系はInsetsによってスク ロール開始点をずらすので Adjust Scroll View Insetsによって適 切に設定されるようになっている
  • 26. iOS7からは全画面表示なので それに逆らわず設定し iOS6用に調整をしてあげよう
  • 27. ちなみに Under Top BarsをオフにするとAdjust Scroll View Insets関係なくなるから お前らはすぐ釣られるでしょ?
  • 28. m9(^Д^)
  • 29. おわり 参考:やはりお前らのMVCは間違っている http://www.slideshare.net/MugeSo/mvc-14469802

×