40:25
https://developer.apple.com/videos/play/wwdc2017/201/
Cocoa touchで新たに導入された機能などの概要。詳細は別セッションで。
■新機能
□ドラッグアンドドロップ
・ドラッグするビューに UIDragInteraction を追加する。
・受け入れるビューに UIDropInteraction を追加する。
・始めからサポートされているビュー:
TableView, CollectionView, TextView, TextField, WebView
・UIPasteConfiguration
□ファイル管理
・UIDocumentBrowserViewControllerを使う。
・ローカルファイルやネットワークファイルにもアクセスできる。
・複数のアプリが同じファイルにアクセスするのでアクセス管理が必要。
・そのために NSFileCoordinator や UIDocument を使うと良い。
■UIの変更
□Large Title
ナビゲーションバーのトップのタイトルを大きくする。検索フィールドとの一体化。メインのビューをスクロールしたときに自動的に縮小する。読み込み中のスピン表示も一体化。
class UINviationBar {
var prefersLargeTitle: Bool
}
class UINavigationItem {
var largeTitleDisplayMode: LargeTitleDisplayMode
var serchController: UISerchController?
}
上下のエリアが可変になったのでそこを調整する必要がある。
class UIView {
var safeAreaLayoutGuide: UILayoutGuid: { get }
var safeAreaInsets: UIEdgeInsets { get }
func safeAreaInsetsDidChange()
}
class UIScrollView {
var contentInsetAdjustmentBehaviro: UIScrollViewContntInsetAdjustmentBehavior
var adjustedContentInset: UIDegeInsets { get }
}
□Swipe Actions
・テーブルビューのスワイプ時の機能をカスタマイズできるようになった。
UISwipeActionsConfiguration
UIContetxualAction
class UITableView {
var separatorInsetReference: UITableViewSeparatorInsetReference
}
■API変更
□Swift 4
・enum, struct を Codable にする。NSCoding, JSON, Porperty lists
・\記法でのキーパス表記が可能になった。
・KVO
□画面上部からのノーティフィケーションセンター、下部からのコントロールセンター表示
class UIViewController {
func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge
}
□Auto Layout and Scroll View
class UIScrollView {
var contentLayoutGuide: UILayoutGuide { get }
var frameLayoutGuide: UILayoutGuide { get }
}
centerXAnchor
□Dynamic Type
カスタムフォントへの対応
ラインスペースへの対応
Visual Fromatting Language への対応
□Password 自動入力
□アセットカタログ
・UIColor を名前で作成
・PDFベースの画像
□可変リフレッシュレート
□ローカリゼーション
RL表記言語へのUIの対応