what's new in uikit dynamics and visual effects - apple inc. · 2016. 7. 8. ·...

173
© 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple. What's New in UIKit Dynamics and Visual Eects Michael Turner UIKit Engineer David Duncan UIKit Engineer App Frameworks #WWDC15 Session 229

Upload: others

Post on 15-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

© 2015 Apple Inc. All rights reserved. Redistribution or public display not permitted without written permission from Apple.

What's New in UIKit Dynamics and Visual Effects

Michael Turner UIKit EngineerDavid Duncan UIKit Engineer

App Frameworks #WWDC15

Session 229

Page 2: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Recommended Sessions

Getting Started with UIKit Dynamics WWDC13

Advanced Techniques with UIKit Dynamics WWDC13

Creating Custom iOS User Interfaces WWDC14

Page 3: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

AgendaWhat we will cover

Page 4: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

AgendaWhat we will cover

A basic overview

Page 5: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

AgendaWhat we will cover

A basic overviewWhat’s new in UIKit Dynamics

Page 6: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

AgendaWhat we will cover

A basic overviewWhat’s new in UIKit DynamicsUtilizing UIVisualEffectView in your app

Page 7: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

AgendaWhat we will cover

A basic overviewWhat’s new in UIKit DynamicsUtilizing UIVisualEffectView in your appBest practices for working with UIKit Dynamics and Auto Layout

Page 8: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics

Page 9: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics

2D Physics-inspired animation system

Page 10: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics

2D Physics-inspired animation systemComposable and declarative

Page 11: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics

2D Physics-inspired animation systemComposable and declarative Not a replacement for Core Animation or UIView animations

Page 12: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Page 13: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Page 14: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Page 15: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Define the coordinate system

Page 16: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Define the coordinate system Provide the overall context for animation

UIDynamicAnimator

Page 17: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Define the coordinate system Provide the overall context for animationKeep track of behaviors

UIDynamicAnimator

SlidingBehavior

Page 18: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Define the coordinate system Provide the overall context for animationKeep track of behaviors

UIDynamicAnimator

SlidingBehavior

UIGravityBehavior

UICollisionBehavior

UIAttachmentBehavior

Page 19: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsSliding example

Define the coordinate system Provide the overall context for animationKeep track of behaviorsUIDynamicItems are associatedwith one or more behaviors

UIView

UIDynamicAnimator

SlidingBehavior

UIGravityBehavior

UICollisionBehavior

UIAttachmentBehavior

Page 20: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Page 21: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision bounds

Page 22: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroup

Page 23: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroupUIFieldBehavior—models vector force fields

Page 24: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroupUIFieldBehavior—models vector force fieldsUIDynamicItemBehavior

Page 25: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroupUIFieldBehavior—models vector force fieldsUIDynamicItemBehaviorUISnapBehavior

Page 26: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroupUIFieldBehavior—models vector force fieldsUIDynamicItemBehaviorUISnapBehaviorUIAttachmentBehavior

Page 27: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsWhat’s new

Support for non-rectangular collision boundsUIDynamicItemGroupUIFieldBehavior—models vector force fieldsUIDynamicItemBehaviorUISnapBehaviorUIAttachmentBehaviorNew ways to debug dynamic animations

Page 28: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItem

Page 29: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

Page 30: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectangle

Page 31: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectanglecase Ellipse

Page 32: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectanglecase Ellipsecase Path

Page 33: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectanglecase Ellipsecase Path

protocol UIDynamicItem : NSObjectProtocol { var center: CGPoint { get set } var bounds: CGRect { get } var transform: CGAffineTransform { get set }

}

Page 34: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectanglecase Ellipsecase Path

protocol UIDynamicItem : NSObjectProtocol { var center: CGPoint { get set } var bounds: CGRect { get } var transform: CGAffineTransform { get set }

}

optional var collisionBoundsType: UIDynamicItemCollisionBoundsType { get } optional var collisionBoundingPath: UIBezierPath { get }

Page 35: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Collision BoundsUIDynamicItemenum UIDynamicItemCollisionBoundsType : UInt {

}

case Rectanglecase Ellipsecase Path

protocol UIDynamicItem : NSObjectProtocol { var center: CGPoint { get set } var bounds: CGRect { get } var transform: CGAffineTransform { get set }

}

optional var collisionBoundsType: UIDynamicItemCollisionBoundsType { get } optional var collisionBoundingPath: UIBezierPath { get }

Page 36: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemCollisionBoundsTypePath

ConvexCounter-clockwise woundNon-self intersecting

Convex

Concave

Page 37: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Individual Items UIDynamicItemGroup

Page 38: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Makes multiple dynamic items behave as one Individual Items UIDynamicItemGroup

Page 39: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Makes multiple dynamic items behave as onePreserves the individual collision bounds

Individual Items UIDynamicItemGroup

Page 40: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Makes multiple dynamic items behave as onePreserves the individual collision boundsDynamic items in a group must notbe added to behaviors individually

Individual Items UIDynamicItemGroup

Page 41: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Makes multiple dynamic items behave as onePreserves the individual collision boundsDynamic items in a group must notbe added to behaviors individuallyA group cannot contain other groups

Individual Items UIDynamicItemGroup

Page 42: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemGroup

Makes multiple dynamic items behave as onePreserves the individual collision boundsDynamic items in a group must notbe added to behaviors individuallyA group cannot contain other groupsConcave or other complex shapes are possible

Individual Items UIDynamicItemGroup

Page 43: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsForce example

Page 44: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsForce example

Page 45: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsForce example

Page 46: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector

UIKit DynamicsForce example

Page 47: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector• Length and direction

UIKit DynamicsForce example

Page 48: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector• Length and direction

UIPushBehavior applies a force

UIKit DynamicsForce example

Page 49: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector• Length and direction

UIPushBehavior applies a force• Continuous

UIKit DynamicsForce example

Page 50: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector• Length and direction

UIPushBehavior applies a force• Continuous• Instantaneous

UIKit DynamicsForce example

Page 51: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

A force is modeled as a vector• Length and direction

UIPushBehavior applies a force• Continuous• Instantaneous

UIKit DynamicsForce example

Page 52: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit DynamicsForce example

Page 53: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Vertical motion over time of the sliding view

UIKit Dynamics

Time

y

Force example

Page 54: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Vertical motion over time of the sliding viewInitial Impulse applied

UIKit Dynamics

Time

y

Force example

Page 55: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Vertical motion over time of the sliding viewInitial Impulse appliedGravity causes the view’s velocity to slow and eventually reverse direction

UIKit Dynamics

Time

y

Force example

Page 56: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Physics FieldsLinear Gravity as a field

Linear Gravity Field

Page 57: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Physics FieldsLinear Gravity as a field

A function that assigns a vector to each point in a domain

Linear Gravity Field

Page 58: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

Page 59: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

UIFieldBehavior can be added to a region of your view

Lines of force

UIRegion

Page 60: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

UIFieldBehavior can be added to a region of your viewThe field is evaluated at each point within the region

Lines of force

UIRegion

Page 61: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

UIFieldBehavior can be added to a region of your viewThe field is evaluated at each point within the regionResulting forces are applied by the animator

Lines of force

UIRegion

Page 62: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

UIFieldBehavior can be added to a region of your viewThe field is evaluated at each point within the regionResulting forces are applied by the animatorUIGravityBehavior is a field already!

Lines of force

UIRegion

Page 63: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

UIFieldBehavior can be added to a region of your viewThe field is evaluated at each point within the regionResulting forces are applied by the animatorUIGravityBehavior is a field already!Simplified physics, well-tuned for performance; not useful for building interstellar space stations

Lines of force

UIRegion

Page 64: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehavior

Linear Gravity Radial Gravity Noise Custom

Drag and Velocity, Vortex, Turbulence, Spring, Electric and Magnetic

Page 65: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorLinear Gravity

Page 66: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorLinear Gravity

Field propertiesvar region: UIRegion var direction: CGVector var strength: CGFloat

Page 67: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorRadial Gravity

Page 68: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorRadial Gravity

Field propertiesvar position: CGPoint var region: UIRegion var strength: CGFloat var falloff: CGFloat var minimumRadius: CGFloat

Page 69: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorNoise

Page 70: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorNoise

Field propertiesvar region: UIRegion var strength: CGFloat var smoothness: CGFloat var animationSpeed: CGFloat

Page 71: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorCustom

Page 72: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIFieldBehaviorCustom

Field Sampleposition velocity mass charge time

Page 73: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

DemoUIKit Dynamics—StickyCorners

Page 74: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Page 75: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show Physics

Page 76: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show PhysicsVisualize fields, collision bounds, and attachments

Page 77: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show PhysicsVisualize fields, collision bounds, and attachments Not API, but accessible in lldb

Page 78: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show PhysicsVisualize fields, collision bounds, and attachments Not API, but accessible in lldb

debugEnabled

Page 79: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show PhysicsVisualize fields, collision bounds, and attachments Not API, but accessible in lldb

debugEnableddebugInterval

Page 80: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Debugging UIKit Dynamics

Overlay to show PhysicsVisualize fields, collision bounds, and attachments Not API, but accessible in lldb

debugEnableddebugIntervaldebugAnimationSpeed

Page 81: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemBehavior

Page 82: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemBehavior

Customize physical properties

Page 83: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIDynamicItemBehavior

Customize physical propertiesApplied to one or more items

Page 84: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

var elasticity: CGFloat var friction: CGFloat var density: CGFloat var resistance: CGFloat var angularResistance: CGFloat

UIDynamicItemBehavior

Customize physical propertiesApplied to one or more items

Page 85: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

var charge: CGFloat var anchored: Bool

var var var var var

UIDynamicItemBehavior

Customize physical propertiesApplied to one or more items

Page 86: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Page 87: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Distance attachment

UIAttachmentBehavior

Page 88: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Distance attachmentCustomizable Damping and Frequency

UIAttachmentBehavior

Page 89: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Page 90: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Limit Attachment

Page 91: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Limit AttachmentBehaves like a rope between items

Page 92: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Limit AttachmentBehaves like a rope between itemsAttachment point offset from each item’s center

Page 93: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Page 94: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Fixed Attachment

Page 95: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Fixed AttachmentItems positioned with respect to the attachment anchor point

Page 96: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Fixed AttachmentItems positioned with respect to the attachment anchor pointNo relative movement

Page 97: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Page 98: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Pin Attachment

Page 99: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Pin AttachmentItems positioned with respect to the attachment anchor point

Page 100: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Range

Pin AttachmentItems positioned with respect to the attachment anchor pointSpecify a rotatable range

Page 101: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Range

Pin AttachmentItems positioned with respect to the attachment anchor pointSpecify a rotatable range

Page 102: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Page 103: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Sliding Attachment

Page 104: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Attachment anchor

Sliding AttachmentItems positioned with respect to the attachment anchor point

Page 105: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Axis of translation

Attachment anchor

Sliding AttachmentItems positioned with respect to the attachment anchor pointAllows only relative translation along a specified axis

Page 106: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Axis of translation

Attachment anchor

Sliding AttachmentItems positioned with respect to the attachment anchor pointAllows only relative translation along a specified axisPrevents relative rotation of the dynamic items

Page 107: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Axis of translation

Attachment anchor

Sliding AttachmentItems positioned with respect to the attachment anchor pointAllows only relative translation along a specified axisPrevents relative rotation of the dynamic itemsSpecify a translatable range

Range

Page 108: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIAttachmentBehavior

Axis of translation

Attachment anchor

Sliding AttachmentItems positioned with respect to the attachment anchor pointAllows only relative translation along a specified axisPrevents relative rotation of the dynamic itemsSpecify a translatable range

Range

Page 109: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in
Page 110: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in
Page 111: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UISnapBehavior

Page 112: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UISnapBehavior

Snap a view in place

Page 113: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UISnapBehavior

Snap a view in placeCustomizable damping

Page 114: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UISnapBehavior

Snap a view in placeCustomizable dampingCustomizable snapPoint

Page 115: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UISnapBehavior

Snap a view in placeCustomizable dampingCustomizable snapPoint

Page 116: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Visual EffectsAdding style to your app

David DuncanUIKit Engineer

Page 117: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewStylish Overlays

Page 118: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIBlurEffect

enum UIBlurEffectStyle : Int { case ExtraLight case Light case Dark }

let blurEffect = UIBlurEffect(style: .ExtraLight)

let blurView = UIVisualEffectView(effect: blurEffect)

Page 119: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIBlurEffect

enum UIBlurEffectStyle : Int { case ExtraLight case Light case Dark }

let blurEffect = UIBlurEffect(style: .ExtraLight)

let blurView = UIVisualEffectView(effect: blurEffect)

Page 120: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIBlurEffect

enum UIBlurEffectStyle : Int { case ExtraLight case Light case Dark }

let blurEffect = UIBlurEffect(style: .ExtraLight)

let blurView = UIVisualEffectView(effect: blurEffect)

Page 121: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIBlurEffect

enum UIBlurEffectStyle : Int { case ExtraLight case Light case Dark }

let blurEffect = UIBlurEffect(style: .ExtraLight)

let blurView = UIVisualEffectView(effect: blurEffect)

Page 122: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIVibrancyEffect

let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)

let vibrancyView = UIVisualEffectView(effect:vibrancyEffect)

blurView.contentView.addSubview(vibrancyView)

vibrancyView.contentView.addSubview(label)

Page 123: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIVibrancyEffect

let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)

let vibrancyView = UIVisualEffectView(effect:vibrancyEffect)

blurView.contentView.addSubview(vibrancyView)

vibrancyView.contentView.addSubview(label)

Page 124: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIVibrancyEffect

let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)

let vibrancyView = UIVisualEffectView(effect:vibrancyEffect)

blurView.contentView.addSubview(vibrancyView)

vibrancyView.contentView.addSubview(label)

Page 125: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIVibrancyEffect

let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)

let vibrancyView = UIVisualEffectView(effect:vibrancyEffect)

blurView.contentView.addSubview(vibrancyView)

vibrancyView.contentView.addSubview(label)

Page 126: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewUIVibrancyEffect

let vibrancyEffect = UIVibrancyEffect(forBlurEffect: blurEffect)

let vibrancyView = UIVisualEffectView(effect:vibrancyEffect)

blurView.contentView.addSubview(vibrancyView)

vibrancyView.contentView.addSubview(label)

Page 127: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnd action!

Page 128: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnd action!

Bounds

Page 129: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnd action!

BoundsEffect

Page 130: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Page 131: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Capture Area

Page 132: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Capture Area

Page 133: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Capture Area

Page 134: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Apply Effect

UIVisualEffectViewAnatomy of an effect

Capture Area

Page 135: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Apply EffectCapture Area

Page 136: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Apply EffectCapture Area Copy Back

Page 137: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of an effect

Apply Effect Offscreen PassCapture Area Copy Back

Page 138: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewOffscreen Passes

AlphaMaskingBlurVibrancySnapshotting

Page 139: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewOffscreen Passes

AlphaMaskingBlurVibrancySnapshottingUIView.snapshotViewAfterScreenUpdates(afterUpdates:) UIView.drawViewHierarchyInRect(rect:, afterScreenUpdates:) UIScreen.snapshotViewAfterScreenUpdates()

Page 140: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewOffscreen Passes

AlphaMaskingBlurVibrancySnapshottingUIView.snapshotViewAfterScreenUpdates(afterUpdates:) UIView.drawViewHierarchyInRect(rect:, afterScreenUpdates:) UIScreen.snapshotViewAfterScreenUpdates()

Page 141: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of a broken effect

VisualEffectView/Blur

Page 142: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of a broken effect

Capture Area

Page 143: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of a broken effect

Capture Area

Page 144: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of a broken effect

Capture Area

Page 145: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewAnatomy of a broken effect

Capture Area Nothing!

Page 146: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Page 147: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

For help in lldb- (NSString *)_whatsWrongWithThisEffect

Page 148: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

For help in lldb- (NSString *)_whatsWrongWithThisEffect

(lldb) po [myEffectView _whatsWrongWithThisEffect]

Page 149: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

For help in lldb- (NSString *)_whatsWrongWithThisEffect

(lldb) po [myEffectView _whatsWrongWithThisEffect]

ISSUE: One or more masking superviews have been found.

<UIView: 0x7fa030518810; frame = (0 0; 0 0); layer = <CALayer: 0x7fa03050b190>>

UIVisualEffectView cannot be masked, you will need to isolate this effect view into a hierarchy that is not masked or not use masks.

Page 150: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Rearrange view hierarchy• Effective for Alpha and Masking

Blur

Content

apply alpha or masking

Root

Container

Page 151: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Rearrange view hierarchy• Effective for Alpha and Masking

ContainerBlur

Content

apply alpha or masking

Root

Page 152: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Rearrange view hierarchy• Effective for Alpha and Masking

ContainerBlur

Content

apply alpha or masking

Root

Page 153: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Mask views individually

Blur ContentContent

mask addedContainer

Page 154: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Mask views individually

Blur ContentContent

Container

Page 155: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Mask views individually

Blur ContentContent

mask added

Container

Page 156: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Snapshot the window or screen

View Snapshot requested

Content

Content

Blur

Window

Screen

Page 157: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Snapshot the window or screen

View Snapshot requested

Content

Content

Blur

Window

Screen

Page 158: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Snapshot the window or screen

Content

Content

Blur

Window

Screen

View Snapshot requested

Page 159: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIVisualEffectViewFixing broken effects

Snapshot the window or screen

Screen Snapshot requested

Content

Content

Blur

Window

Screen View Snapshot requested

Page 160: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto Layout

Page 161: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto Layout

UIKit Dynamics outside• dynamicsView.translatesAutoresizingMaskIntoConstraints = true

Auto Layout inside• innerView.leadingAnchor.constraintEqualToAnchor(dynamicsView.leadingAnchor)

Follow via Auto Layout

Page 162: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutFollow via Auto Layout

Lola 011.jpg

Page 163: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutFollow via Auto Layout

Lola 011.jpg

Page 164: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutCustom UIDynamicItem

Page 165: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutCustom UIDynamicItem

Subclass NSObject

Page 166: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutCustom UIDynamicItem

Subclass NSObjectConform to UIDynamicItem

Page 167: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutCustom UIDynamicItem

Subclass NSObjectConform to UIDynamicItemProvide .bounds

Page 168: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

UIKit Dynamics and Auto LayoutCustom UIDynamicItem

Subclass NSObjectConform to UIDynamicItemProvide .boundsUpdate constraints when .center and .transform change

Page 169: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

DemoUIKit Dynamics and Auto Layout

Page 170: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Summary

Focus on the user experience Always consider performance impact when adding advanced effects

Page 171: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

Related Sessions and Labs

Getting Started with Multitasking on iPad in iOS 9 Presidio Tuesday 4:30PM

Multitasking Essentials for Media-Based Apps oniPad in iOS 9 Pacific Heights Wednesday 2:30PM

Optimizing Your App for Multitasking on iPad in iOS 9 Presidio Wednesday 3:30PM

Mysteries of Auto Layout, Part 1 Presidio Thursday 11:00AM

Mysteries of Auto Layout, Part 2 Presidio Thursday 1:30PM

Building Responsive and Efficient Apps with GCD Nob Hill Friday 10:00AM

UIKit and UIKit Dynamics Lab Frameworks Lab C Friday 11:00AM

Page 172: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in

More Information

DocumentationUIDynamicAnimator Class ReferenceUIFieldBehavior Class ReferenceUIDynamicBehavior Class ReferenceUIAttachmentBehavior Class ReferenceSample CodeStickyCorners

http://developer.apple.com/library

Technical SupportApple Developer ForumsDeveloper Technical Support

Curt RothertApp Frameworks [email protected]

Page 173: What's New in UIKit Dynamics and Visual Effects - Apple Inc. · 2016. 7. 8. · Redistribution or public display not permitted without written permission from Apple. What's New in