33
iOS 8 時代の UISplitViewController 2014.10.3 クラスメソッド株式会社 田宮 宙比己

iOS 8時代のUISplitViewController

Embed Size (px)

DESCRIPTION

iOS8になり、UISplitViewControllerが新しくなり、iPhoneでも使えるようになりました。その辺のお話と、その背景にある、多様な画面サイズに対応するための新しいAppleが打ち出した考え方 "Adaptive"について解説しています。

Citation preview

Page 1: iOS 8時代のUISplitViewController

iOS 8 時代の UISplitViewController

2014.10.3 クラスメソッド株式会社

田宮 宙比己

Page 2: iOS 8時代のUISplitViewController

自己紹介

• 田宮 宙比己 (たみや ときひこ)

• @Cocominap

• クラスメソッド株式会社

• AWS & iOS

Page 3: iOS 8時代のUISplitViewController

様々なデバイス 様々な画面サイズ

Page 4: iOS 8時代のUISplitViewController

そこで

Page 5: iOS 8時代のUISplitViewController

Adaptive

Page 6: iOS 8時代のUISplitViewController

Size Class

Page 7: iOS 8時代のUISplitViewController

Regular

Compact

Size Class

Page 8: iOS 8時代のUISplitViewController

Regular Compact

Regular

Compact

Horizontal

Vertical

iPad

Apple Watch?

Page 9: iOS 8時代のUISplitViewController

iPhone 5s / 6

Regular

Compact

Portrait

Horizontal

Vertical

Page 10: iOS 8時代のUISplitViewController

iPhone 5s / 6Regular

Compact Landscape

Horizontal

Vertical

Page 11: iOS 8時代のUISplitViewController

traitCollection

Page 12: iOS 8時代のUISplitViewController

プロパティ// UITraitCollection.h !

UIUserInterfaceSizeClass horizontalSizeClass; UIUserInterfaceSizeClass verticalSizeClass; UIUserInterfaceIdiom userInterfaceIdiom; CGFloat displayScale;

Page 13: iOS 8時代のUISplitViewController

enum// UIInterface.h !

typedef NS_ENUM(NSInteger, UIUserInterfaceSizeClass) { UIUserInterfaceSizeClassUnspecified = 0, UIUserInterfaceSizeClassCompact = 1, UIUserInterfaceSizeClassRegular = 2, } NS_ENUM_AVAILABLE_IOS(8_0);

Page 14: iOS 8時代のUISplitViewController

- (void)traitCollectionDidChange:(UITraitCollection *)previousTraitCollection { NSLog(@"[previous] \n %@", previousTraitCollection); NSLog(@"[now] \n %@", self.traitCollection); }

NSLog

Page 15: iOS 8時代のUISplitViewController

previousTraitCollection

_UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Regular, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1

iPhone5

NSLog

Page 16: iOS 8時代のUISplitViewController

self.traitColletction

_UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1

iPhone5

NSLog

Page 17: iOS 8時代のUISplitViewController

UISplitViewController

Page 18: iOS 8時代のUISplitViewController
Page 19: iOS 8時代のUISplitViewController

CompactRegular

Page 20: iOS 8時代のUISplitViewController

iPad (Landscape)

Page 21: iOS 8時代のUISplitViewController
Page 22: iOS 8時代のUISplitViewController

iPhone 5s (Landscape)

Page 23: iOS 8時代のUISplitViewController
Page 24: iOS 8時代のUISplitViewController

iPhone 6 (Landscape)

Page 25: iOS 8時代のUISplitViewController
Page 26: iOS 8時代のUISplitViewController

iPhone 6 Plus (Landscape)

Page 27: iOS 8時代のUISplitViewController
Page 28: iOS 8時代のUISplitViewController

実装にどう活かす

Page 29: iOS 8時代のUISplitViewController

• 回転の検知

• didRotateFromInterfaceOrientation:

Page 30: iOS 8時代のUISplitViewController

画面状況に最適な UIを提供できる

Page 31: iOS 8時代のUISplitViewController

7%8%10%11%

29%

35%

This is test text of what I think of my This is a test text of what I think of my This is a test text of what I think of my This is a test text of what I think of my 1908

7%8%10%11%

29%

35%

This is test text of what I think of my This is a test text of what I think of my This is a test text of what I think of my This is a test text of what I think of my 1908

Graph 1Graph 1Graph 2

Graph 3

Graph 4

Graph1

Page 32: iOS 8時代のUISplitViewController

エンジニアを募集中

クラスメソッド 検索

Android

Page 33: iOS 8時代のUISplitViewController

ありがとうございました