Na WWDC 2017, a Apple reinventou o Drag and Drop. No iPad, agora é possível compartilhar dados com outras apps de uma maneira fácil e intuitiva. Além disso, ele abre novas possibilidades de interações para o usuário dentro da app, tanto no iPad quanto no iPhone. O objetivo da palestra é explicar o funcionamento das novas APIs de Drag and Drop, mostrando desde integrações mais simples até como customizar as interações e tornar suas próprias estruturas de dados arrastáveis. Durante a palestra veremos aplicações reais e exemplos de códigos escritos no aplicativo do VivaReal para o iOS 11.
6. Drag and Drop
• Table Views e Collection Views
• UICollectionViewDragDelegate, UICollectionViewDropDelegate
• Custom UIViews
• UIDragInterationDelegate, UIDropInteractionDelegate
• Classes importantes
• UIDragItem, UIDragSession, UIDropSession, NSItemProvider
7. • UIDragSession & UIDropSession
• Objetos criados pelo sistema para gerenciar o Drag/Drop
• UIDragItem
• Objetos que são arrastado em uma UIDragSession
• NSItemProvider
• Encapsula os dados arrastáveis
• NSString, NSAttributedString, NSURL, UIColor, UIImage
• NSItemProviderWriting: definir representação do seu modelo
Conceitos importantes
8. Drag em Collection Views
1. Criar um UICollectionViewDragDelegate
1. Criar UIDragItems (objetos que são arrastados)
2. Definir drag delegate da Collection View
13. Drag em Custom Views
1. Criar um UIDragInteractionDelegate
1. Criar UIDragItems (objetos que são arrastados)
2. Instanciar e associar UIDragInteraction à View
20. • Como o drop é dentro da própria app, podemos usar o localObject da
UIDragItem
• UICollectionViewDropProposal mostra um feedback sobre o resultado do drop
• .cancel, .forbidden, .copy, .move
Drop em Collection Views
1. Criar UICollectionViewDropDelegate
37. Referências
• Drag and Drop - UIKit Documentation
• https://developer.apple.com/documentation/uikit/drag_and_drop
• Drag and Drop Human Interface Guidelines
• https://developer.apple.com/ios/human-interface-guidelines/user-interaction/
drag-and-drop/
• WWDC Drag and Drop Sessions
• https://developer.apple.com/videos/play/wwdc2017/203/