ebook img

Pro iOS Table Views and Collection Views: Using Swift 2 PDF

569 Pages·2015·15.236 MB·English
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Pro iOS Table Views and Collection Views: Using Swift 2

D BOOKS FOR PROFESSIONALS BY PROFESSIONALS® u c k e t t Pro iOS Table Views and Collection Views P Pro iOS Table and Collection Views with Swift takes a task-oriented focus to assist you when r implementing customized table and collection views. It’s a great reference and customization o cookbook at the same time, useful for beginners as well as intermediate developers. You’ll learn i how to create table and collection views for a variety of screen types, including the new Apple O Watch, using the Swift 2 programming language. S If you’re an iOS app developer, chances are you’ll be using table and collection views in your development projects. They are the bread and butter of iOS apps - with them, you can create T everything from the simplest of lists to fully tricked-out user interfaces. a b Table and collection views are some of the most complex components found in UIKit. While using them for standard user interfaces is quite simple, customizing them can become really l e challenging. iOS V Pro • Covers the entire UITableView and UICollectionView APIs in depth i • Covers customization and performance topics in depth e • Task-oriented reference with multiple levels of detail w • The anatomy of tables, collection views, cells and layouts • The design patterns that power table and collection views s Table Views and • How to create and confi gure table views and collection views a • How to customize every last little detail of the view n • Advanced tips and tricks for performance and killer user interfaces d • The latest updates in iOS 9 and how to exploit them Collection Views C o l l e c t i Using Swift 2 o n — V Tim Duckett i e US $54.99 w ISBN 978-1-4842-1243-1 Shelve in: 55499 Mobile Computing s User level: Intermediate–Advanced 9781484212431 SOURCE CODE ONLINE www.apress.com Pro iOS Table Views and Collection Views Using Swift 2 Tim Duckett Pro iOS Table Views and Collection Views: Using Swift 2 Copyright © 2015 by Tim Duckett This work is subject to copyright. All rights are reserved by the Publisher, whether the whole or part of the material is concerned, specifically the rights of translation, reprinting, reuse of illustrations, recitation, broadcasting, reproduction on microfilms or in any other physical way, and transmission or information storage and retrieval, electronic adaptation, computer software, or by similar or dissimilar methodology now known or hereafter developed. Exempted from this legal reservation are brief excerpts in connection with reviews or scholarly analysis or material supplied specifically for the purpose of being entered and executed on a computer system, for exclusive use by the purchaser of the work. Duplication of this publication or parts thereof is permitted only under the provisions of the Copyright Law of the Publisher’s location, in its current version, and permission for use must always be obtained from Springer. Permissions for use may be obtained through RightsLink at the Copyright Clearance Center. Violations are liable to prosecution under the respective Copyright Law. ISBN-13 (pbk): 978-1-4842-1243-1 ISBN-13 (electronic): 978-1-4842-1242-4 Trademarked names, logos, and images may appear in this book. Rather than use a trademark symbol with every occurrence of a trademarked name, logo, or image, we use the names, logos, and images only in an editorial fashion and to the benefit of the trademark owner, with no intention of infringement of the trademark. The use in this publication of trade names, trademarks, service marks, and similar terms, even if they are not identified as such, is not to be taken as an expression of opinion as to whether or not they are subject to proprietary rights. While the advice and information in this book are believed to be true and accurate at the date of publication, neither the authors nor the editors nor the publisher can accept any legal responsibility for any errors or omissions that may be made. The publisher makes no warranty, express or implied, with respect to the material contained herein. Managing Director: Welmoed Spahr Lead Editor: Michelle Lowman Development Editor: James Markham Technical Reviewers: Tiago Duarte and Michael Thomas Editorial Board: Steve Anglin, Pramila Balan, Louise Corrigan, Jonathan Gennick, Robert Hutchinson, Celestin Suresh John, Michelle Lowman, James Markham, Susan McDermott, Matthew Moodie, Jeffrey Pepper, Douglas Pundick, Ben Renow-Clarke, Gwenan Spearing Coordinating Editor: Mark Powers Copy Editor: Mary Behr Compositor: SPi Global Indexer: SPi Global Artist: SPi Global Distributed to the book trade worldwide by Springer Science+Business Media New York, 233 Spring Street, 6th Floor, New York, NY 10013. Phone 1-800-SPRINGER, fax (201) 348-4505, e-mail [email protected], or visit www.springeronline.com. Apress Media, LLC is a California LLC and the sole member (owner) is Springer Science + Business Media Finance Inc (SSBM Finance Inc). SSBM Fi- nance Inc is a Delaware corporation. For information on translations, please e-mail [email protected], or visit www.apress.com. Apress and friends of ED books may be purchased in bulk for academic, corporate, or promotional use. eBook versions and licenses are also available for most titles. For more information, reference our Special Bulk Sales–eBook Licensing web page at www.apress.com/bulk-sales. Any source code or other supplementary material referenced by the author in this text is available to readers at www.apress.com/9781484212431. For detailed information about how to locate your book’s source code, go to www.apress.com/source-code/. Readers can also access source code at SpringerLink in the Supplementary Material section for each chapter. For Lucy, Kath, and Isaac Contents at a Glance About the Author ����������������������������������������������������������������������������������������������������xix About the Technical Reviewers ������������������������������������������������������������������������������xxi Acknowledgments ������������������������������������������������������������������������������������������������xxiii Introduction �����������������������������������������������������������������������������������������������������������xxv ■ Chapter 1: Table Views Quick Start �����������������������������������������������������������������������1 ■ Chapter 2: How the Table View Fits Together ������������������������������������������������������29 ■ Chapter 3: Collection Views Quick Start ��������������������������������������������������������������45 ■ Chapter 4: How The Collection View Fits Together ����������������������������������������������83 ■ Chapter 5: Feeding Data to Your Views �������������������������������������������������������������105 ■ Chapter 6: How the Table Cell Fits Together ������������������������������������������������������141 ■ Chapter 7: Improving the Look of Cells �������������������������������������������������������������175 ■ Chapter 8: Creating Custom Cells with Subclasses �������������������������������������������205 ■ Chapter 9: Improving Interaction ����������������������������������������������������������������������241 ■ Chapter 10: Using Tables for Navigation �����������������������������������������������������������273 ■ Chapter 11: Indexing, Grouping, and Sorting Tables �����������������������������������������311 ■ Chapter 12: Selecting and Editing Content ��������������������������������������������������������347 v vi Contents at a Glance ■ Chapter 13: Static Tables �����������������������������������������������������������������������������������405 ■ Chapter 14: Tables in WatchKit ��������������������������������������������������������������������������421 ■ Chapter 15: Collection View Flow Layouts ��������������������������������������������������������455 ■ Chapter 16: Collection View Custom Layouts ����������������������������������������������������479 ■ Chapter 17: Animated and Interactive Collection Views �����������������������������������519 Index ���������������������������������������������������������������������������������������������������������������������545 Contents About the Author ����������������������������������������������������������������������������������������������������xix About the Technical Reviewers ������������������������������������������������������������������������������xxi Acknowledgments ������������������������������������������������������������������������������������������������xxiii Introduction �����������������������������������������������������������������������������������������������������������xxv ■ Chapter 1: Table Views Quick Start �����������������������������������������������������������������������1 What Are Table Views? �����������������������������������������������������������������������������������������������������1 The Anatomy of a Table View ��������������������������������������������������������������������������������������������3 Creating a Simple Table View App ������������������������������������������������������������������������������������5 Creating the Application Skeleton ������������������������������������������������������������������������������������5 Generating Some Data �����������������������������������������������������������������������������������������������������8 Creating the Table View ��������������������������������������������������������������������������������������������������10 Conforming to the Table View Protocols �������������������������������������������������������������������������14 Wiring Up the Data Source and Delegate �����������������������������������������������������������������������15 Displaying the Data ��������������������������������������������������������������������������������������������������������16 numberOfSectionsInTableView( :) ���������������������������������������������������������������������������������������������������������17 tableView:numberOfRowsInSection( :) �������������������������������������������������������������������������������������������������17 Creating Cells ���������������������������������������������������������������������������������������������������������������������������������������18 vii viii Contents Creating a Prototype Cell ����������������������������������������������������������������������������������������������������������������������19 Configuring the Cell ������������������������������������������������������������������������������������������������������������������������������21 Running the App �����������������������������������������������������������������������������������������������������������������������������������21 Adding Some Interactivity ����������������������������������������������������������������������������������������������22 tableView:didSelectRowAtIndexPath: ���������������������������������������������������������������������������������������������������23 Understanding How the App’s Objects Fit Together �������������������������������������������������������25 Summary ������������������������������������������������������������������������������������������������������������������������27 ■ Chapter 2: How the Table View Fits Together ������������������������������������������������������29 Understanding Table Views ��������������������������������������������������������������������������������������������29 Working with the UITableView Family ����������������������������������������������������������������������������30 The UITableView Class Hierarchy ����������������������������������������������������������������������������������������������������������31 Choosing the Type of Table View ������������������������������������������������������������������������������������32 The Plain Table ��������������������������������������������������������������������������������������������������������������������������������������32 The Indexed Table ���������������������������������������������������������������������������������������������������������������������������������33 The Sectioned Table������������������������������������������������������������������������������������������������������������������������������34 The Grouped Table ��������������������������������������������������������������������������������������������������������������������������������34 Setting TableView Dimensions ���������������������������������������������������������������������������������������36 Controlling the Background of a UITableView ����������������������������������������������������������������37 What UITableView Inherits from UIScrollView ����������������������������������������������������������������38 Creating UITableViews ����������������������������������������������������������������������������������������������������38 Creating a UITableView in Interface Builder �����������������������������������������������������������������������������������������39 Creating a UITableView Programmatically ��������������������������������������������������������������������������������������������41 Creating a UITableView with UITableViewController �����������������������������������������������������������������������������42 Summary ������������������������������������������������������������������������������������������������������������������������44 ■ Chapter 3: Collection Views Quick Start ��������������������������������������������������������������45 What Are Collection Views? ��������������������������������������������������������������������������������������������45 The Anatomy of a Collection View ����������������������������������������������������������������������������������48 The Collection View Itself����������������������������������������������������������������������������������������������������������������������48 Collection View Cells�����������������������������������������������������������������������������������������������������������������������������49 The Supporting Objects ������������������������������������������������������������������������������������������������������������������������51 Contents ix Creating a Simple Collection View App ���������������������������������������������������������������������������54 Creating the Application Skeleton ����������������������������������������������������������������������������������56 Creating Some Data �������������������������������������������������������������������������������������������������������58 Adding the Card Images �����������������������������������������������������������������������������������������������������������������������58 Building the Model ��������������������������������������������������������������������������������������������������������������������������������60 Setting Up the Collection View in the Storyboard ���������������������������������������������������������������������������������66 Setting Up the delegate and dataSource Funtions �������������������������������������������������������������������������������68 The App in Action ����������������������������������������������������������������������������������������������������������������������������������81 Summary ������������������������������������������������������������������������������������������������������������������������81 ■ Chapter 4: How The Collection View Fits Together ����������������������������������������������83 What Are Collection Views? ��������������������������������������������������������������������������������������������83 The Architecture of a Collection View �����������������������������������������������������������������������������84 The Anatomy of a Collection View ����������������������������������������������������������������������������������87 The Collection View Itself����������������������������������������������������������������������������������������������������������������������87 Collection View Items ���������������������������������������������������������������������������������������������������������������������������89 Collection View Layouts ������������������������������������������������������������������������������������������������������������������������91 The Supporting Objects in Detail ����������������������������������������������������������������������������������������������������������92 Creating Collection Views �����������������������������������������������������������������������������������������������95 Creating a UICollectionView with Interface Builder ������������������������������������������������������������������������������95 Creating a UICollectionView in Code ���������������������������������������������������������������������������������������������������102 Summary ����������������������������������������������������������������������������������������������������������������������103 ■ Chapter 5: Feeding Data to Your Views �������������������������������������������������������������105 UITableView, UICollectionView, and Delegation ������������������������������������������������������������105 Understanding Delegation ������������������������������������������������������������������������������������������������������������������106 Setting Delegates �������������������������������������������������������������������������������������������������������������������������������108 Wiring Up an Object with a Delegate ��������������������������������������������������������������������������������������������������109 Defining Protocols ������������������������������������������������������������������������������������������������������������������������������111 Using UITableView’s Delegate Methods ����������������������������������������������������������������������������������������������113 Using UITableViewDelegate Methods �������������������������������������������������������������������������������������������������115 Using UICollectionViewDelegate Methods ������������������������������������������������������������������������������������������118 x Contents Datasources �����������������������������������������������������������������������������������������������������������������121 The UITableView dataSource ����������������������������������������������������������������������������������������121 How the Key Information Is Obtained by the Table �����������������������������������������������������������������������������122 Cell-, Section-, and Row-Related UITableViewDataSource Methods ��������������������������������������������������124 Title- and Index-Related UITableViewDataSource Methods ����������������������������������������������������������������124 Insertion-, Removal-, and Reordering-Related UITableViewDataSource Methods ������������������������������125 The UICollectionView dataSource ���������������������������������������������������������������������������������126 How the Key Information Is Obtained by the Collection View �������������������������������������������������������������127 Which configuration method should I use? ����������������������������������������������������������������������������������������128 Cell-, Section-, and Item-Related UICollectionViewDataSource Methods ������������������������������������������129 The Thing to Bear in Mind About dataSource Methods ������������������������������������������������130 Implementing the dataSource and delegate Protocols ������������������������������������������������130 All About indexPaths �����������������������������������������������������������������������������������������������������132 The Model-View-Controller Design Pattern ������������������������������������������������������������������133 Why Use the Model-View-Controller Pattern? ������������������������������������������������������������������������������������135 MVC and iOS ���������������������������������������������������������������������������������������������������������������������������������������135 MVC, tableViews, and collectionViews �����������������������������������������������������������������������������������������������136 Improving the App Structure ����������������������������������������������������������������������������������������136 How to Split Out Datasources and Delegates �������������������������������������������������������������������������������������137 Summary ����������������������������������������������������������������������������������������������������������������������139 ■ Chapter 6: How the Table Cell Fits Together ������������������������������������������������������141 Understanding the Anatomy of a UITableViewCell ��������������������������������������������������������141 Basic Structure of the Cell ������������������������������������������������������������������������������������������������������������������142 The Cell’s Background Views ��������������������������������������������������������������������������������������������������������������143 Content and Accessory Views �������������������������������������������������������������������������������������������������������������145 Designing Prototype Cells ��������������������������������������������������������������������������������������������145 The Code for This Chapter ������������������������������������������������������������������������������������������������������������������145 Creating Prototype Cells in XIB Files ��������������������������������������������������������������������������������������������������146 Creating Prototype Cells in Storyboards ���������������������������������������������������������������������������������������������150 Creating Prototype Cells in Code ��������������������������������������������������������������������������������������������������������158

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.