Programming IOS 13: Dive Deep Into Views, View Controllers, and Frameworks

Programming IOS 13: Dive Deep Into Views, View Controllers, and Frameworks

作者: Neuburg Matt
出版社: O'Reilly
出版在: 2020-01-14
ISBN-13: 9781492074618
ISBN-10: 1492074616
總頁數: 1000 頁




內容描述


If you're grounded in the basics of Swift, Xcode, and the Cocoa framework, this book provides a structured explanation of all essential real-world iOS app components. Through deep exploration and copious code examples, you'll learn how to create views, manipulate view controllers, and add features from iOS frameworks.

Create, arrange, draw, layer, and animate views that respond to touch
Use view controllers to manage multiple screens of interface
Master interface classes for scroll views, table views, text, popovers, split views, web views, and controls
Dive into frameworks for sound, video, maps, and sensors
Access user libraries: music, photos, contacts, and calendar
Explore additional topics, including files, networking, and threads


目錄大綱


How to Contact Us
I. Views

  1. Views
    Window and Root View
    How an App Launches
    App Without a Storyboard
    Referring to the Window
    Experimenting with Views
    Subview and Superview
    Color
    Visibility and Opacity
    Frame
    Bounds and Center
    Transform
    Transform3D
    Window Coordinates and Screen Coordinates
    Trait Collections
    Interface Style
    Size Classes
    Overriding Trait Collections
    Layout
    Autoresizing
    Autolayout and Constraints
    Implicit Autoresizing Constraints
    Creating Constraints in Code
    Constraints as Objects
    Margins and Guides
    Intrinsic Content Size
    Self-Sizing Views
    Stack Views
    Internationalization
    Mistakes with Constraints
    Configuring Layout in the Nib
    Autoresizing in the Nib
    Creating a Constraint
    Viewing and Editing Constraints
    Problems with Nib Constraints
    Varying the Screen Size
    Conditional Interface Design
    Xcode View Features
    View Debugger
    Previewing Your Interface
    Designable Views and Inspectable Properties
    Layout Events
  2. Drawing
    Images and Image Views
    Image Files
    Image Views
    Resizable Images
    Transparency Masks
    Reversible Images
    Graphics Contexts
    Drawing on Demand
    Drawing a UIImage
    UIImage Drawing
    CGImage Drawing
    Snapshots
    CIFilter and CIImage
    Blur and Vibrancy Views
    Drawing a UIView
    Graphics Context Commands
    Graphics Context Settings
    Paths and Shapes
    Clipping
    Gradients
    Colors and Patterns
    Graphics Context Transforms
    Shadows
    Erasing
    Points and Pixels
    Content Mode
  3. Layers
    View and Layer
    Layers and Sublayers
    Manipulating the Layer Hierarchy
    Positioning a Sublayer
    CAScrollLayer
    Layer and Delegate
    Layout of Layers
    Drawing in a Layer
    Drawing-Related Layer Properties
    Content Resizing and Positioning
    Layers that Draw Themselves
    Transforms
    Affine Transforms
    3D Transforms
    Depth
    Further Layer Features
    Shadows
    Borders and Rounded Corners
    Masks
    Layer Efficiency
    Layers and Key–Value Coding
  4. Animation
    Drawing, Animation, and Threading
    Image View and Image Animation
    View Animation
    A Brief History of View Animation
    Property Animator Basics
    View Animation Basics
    View Animation Configuration
    Timing Curves
    Canceling a View Animation
    Frozen View Animation
    Custom Animatable View Properties
    Keyframe View Animation
    Transitions
    Implicit Layer Animation
    Animatable Layer Properties
    Animation Transactions
    Media Timing Functions
    Core Animation
    CABasicAnimation and Its Inheritance
    Using a CABasicAnimation
    Springing Animation
    Keyframe Animation
    Making a Property Animatable
    Grouped Animations
    Freezing an Animation
    Transitions
    Animations List
    Actions
    What an Action Is
    Action Search
    Hooking Into the Action Search
    Making a Custom Property Implicitly Animatable
    Nonproperty Actions
    Emitter Layers
    CIFilter Transitions
    UIKit Dynamics
    The Dynamics Stack
    Custom Behaviors
    Animator and Behaviors
    Motion Effects
    Animation and Layout
  5. Touches
    Touch Events and Views
    Receiving Touches
    Restricting Touches
    Interpreting Touches
    Gesture Recognizers
    Gesture Recognizer Classes
    Gesture Recognizer Conflicts
    Gesture Recognizer Delegate
    Subclassing Gesture Recognizers
    Gesture Recognizers in the Nib
    3D Touch Press Gesture
    Touch Delivery
    Hit-Testing
    Performing Hit-Testing
    Hit-Test Munging
    Hit-Testing for Layers
    Hit-Testing for Drawings
    Hit-Testing During Animation
    Initial Touch Event Delivery
    Gesture Recognizer and View
    Touch Exclusion Logic
    Gesture Recognition Logic
    II. Interface
  6. View Controllers
    View Controller Responsibilities
    View Controller Hierarchy
    Automatic Child View Placement
    Manual Child View Placement
    Presented View Placement
    Ensuring a Coherent Hierarchy
    View Controller Creation
    How a View Controller Obtains Its View
    Manual View
    Generic Automatic View
    View in a Separate Nib
    Summary
    How Storyboards Work
    How a Storyboard View Controller Nib is Loaded
    How a Storyboard View Nib is Loaded
    View Resizing
    View Size in the Nib Editor
    Bars and Underlapping
    Resizing and Layout Events
    Rotation
    Uses of Rotation
    Permitting Compensatory Rotation
    Initial Orientation
    Detecting Rotation
    View Controller Manual Layout
    Initial Manual Layout
    Manual Layout During Rotation
    Presented View Controller
    Presentation and Dismissal
    Configuring a Presentation
    Communication with a Presented View Controller
    Adaptive Presentation
    Presentation, Rotation, and the Status Bar
    Tab Bar Controller
    Tab Bar Items
    Configuring a Tab Bar Controller
    Navigation Controller
    Bar Button Items
    Navigation Items and Toolbar Items
    Configuring a Navigation Controller
    Custom Transition
    Noninteractive Custom Transition Animation
    Interactive Custom Transition Animation
    Custom Presented View Controller Transition
    Transition Coordinator
    Page View Controller
    Preparing a Page View Controller
    Page View Controller Navigation
    Other Page View Controller Configurations
    Container View Controllers
    Adding and Removing Children
    Status Bar, Traits, and Resizing
    Previews and Context Menus
    Storyboards
    Triggered Segues
    Container Views and Embed Segues
    Storyboard References
    Unwind Segues
    View Controller Lifetime Events
    Order of Events
    Appear and Disappear Events
    Event Forwarding to a Child View Controller
    View Controller Memory Management
    Lazy Loading
    NSCache, NSPurgeableData, and Memory-Mapping
    Background Memory Usage
  7. Scroll Views
    Content Size
    Creating a Scroll View in Code
    Manual Content Size
    Automatic Content Size with Autolayout
    Scroll View Layout Guides
    Using a Content View
    Scroll View in a Nib
    Content Inset
    Scrolling
    Scrolling in Code
    Paging
    Tiling
    Zooming
    Zooming Programmatically
    Zooming with Detail
    Scroll View Delegate
    Scroll View Touches
    Floating Scroll View Subviews
    Scroll View Performance
  8. Table Views and Collection Views
    Table View Controller
    Table View Cells
    Built-In Cell Styles
    Registering a Cell Class
    Custom Cells
    Table View Data
    The Three Big Questions
    Reusing Cells
    Table View Sections
    Section Headers and Footers
    Table View Section Example
    Section Index
    Variable Row Heights
    Manual Row Height Measurement
    Measurement and Layout with Constraints
    Estimated Height
    Automatic Row Height
    Table View Selection
    Managing Cell Selection
    Responding to Cell Selection
    Navigation from a Table View
    Table View Scrolling and Layout
    Refreshing a Table View
    Cell Choice and Static Tables
    Direct Access to Cells
    Refresh Control
    Editing a Table View
    Toggling a Table View’s Edit Mode
    Edit Mode and Selection
    Changing a Table View’s Structure
    Deleting a Cell
    Deleting Multiple Cells
    Table View Diffable Data Source
    Populating a Diffable Data Source
    Subclassing a Diffable Data Source
    Changing a Diffable Data Source
    Pros and Cons of the Diffable Data Source
    More Table View Editing
    Rearranging Cells
    Editable Content in Cells
    Expandable Cell
    Table View Swipe Action Buttons
    Table View Menus
    Table View Searching
    Configuring a Search Controller
    Using a Search Controller
    Collection Views
    Collection View Classes
    Flow Layout
    Compositional Layout
    Size, Count, Spacing, and Insets
    Supplementary Items
    Multiple Section Layouts
    Other Compositional Layout Features
    Collection View Diffable Data Source
    Basic Cell Manipulation
    Selecting Cells
    Deleting Cells
    Menu Handling
    Rearranging Cells
    Custom Collection View Layouts
    Tweaking a Layout
    Collection View Layout Subclass
    Decoration Views
    Switching Layouts
    Collection Views and UIKit Dynamics
  9. iPad Interface
    Popovers
    Arrow Source and Direction
    Popover Size
    Popover Appearance
    Passthrough Views
    Popover Presentation, Dismissal, and Delegate
    Adaptive Popovers
    Popover Segues
    Popover Presenting a View Controller
    Split Views
    Expanded Split View Controller (iPad)
    Collapsed Split View Controller (iPhone)
    Expanding Split View Controller (Big iPhone)
    Customizing a Split View Controller
    Split View Controller in a Storyboard
    Setting the Collapsed State
    View Controller Message Percolation
    iPad Multitasking
    Drag and Drop
    Drag and Drop Architecture
    Basic Drag and Drop
    Item Providers
    Slow Data Delivery
    Additional Delegate Methods
    Table Views and Collection Views
    Spring Loading
    iPhone and Local Drag and Drop
    Multiple Windows
    The Window Architecture
    Scene Creation
    Window Creation and Closing
    State Saving and Restoration
    Further Multiple Window Considerations
  10. Text
    Fonts and Font Descriptors
    Fonts
    Symbol Images and Text
    Font Descriptors
    Choosing a Font
    Adding Fonts
    Attributed Strings
    Attributed String Attributes
    Making an Attributed String
    Modifying and Querying an Attributed String
    Custom Attributes
    Drawing and Measuring an Attributed String
    Labels
    Number of Lines
    Wrapping and Truncation
    Fitting Label and Text
    Customized Label Drawing
    Text Fields
    Summoning and Dismissing the Keyboard
    Keyboard Covers Text Field
    Text Field Delegate and Control Event Messages
    Text Field Menu
    Drag and Drop
    Keyboard and Input Configuration
    Text Views
    Links, Text Attachments, and Data
    Self-Sizing Text View
    Text View and Keyboard
    Text Kit
    Text View and Text Kit
    Text Container
    Alternative Text Kit Stack Architectures
    Layout Manager
    Text Kit Without a Text View
  11. Web Views
    WKWebView
    Web View Content
    Tracking Changes in a Web View
    Web View Navigation
    Communicating with a Web Page
    Custom Schemes
    Web View Previews and Context Menus
    Safari View Controller
    Developing Web View Content
  12. Controls and Other Views
    UIActivityIndicatorView
    UIProgressView
    Progress View Alternatives
    The Progress Class
    UIPickerView
    UISearchBar
    UIControl
    UISwitch
    UIStepper
    UIPageControl
    UIDatePicker
    UISlider
    UISegmentedControl
    UIButton
    Custom Controls
    Bars
    Bar Position
    Bar Metrics
    Bar and Item Appearance
    Bar Background and Shadow
    Bar Button Items
    Navigation Bar
    Toolbar
    Tab Bar
    Tint Color
    Appearance Proxy
  13. Modal Dialogs
    Alerts and Action Sheets
    Alerts
    Action Sheets
    Alert Alternatives
    Quick Actions
    Local Notifications
    Authorization for Local Notifications
    Notification Categories
    Scheduling a Local Notification
    Hearing About a Local Notification
    Grouped Notifications
    Managing Notifications
    Notification Content Extensions
    Today Extensions
    Activity Views
    Presenting an Activity View
    Custom Activities
    Action Extensions
    Share Extensions
    III. Some Frameworks
  14. Audio
    System Sounds
    Audio Session
    Category
    Activation and Deactivation
    Ducking
    Interruptions
    Secondary Audio
    Routing Changes
    Audio Player
    Remote Control of Your Sound
    Playing Sound in the Background
    AVAudioRecorder
    AVAudioEngine
    MIDI Playback
    Text to Speech
    Speech to Text
    Further Topics in Sound
  15. Video
    AVPlayerViewController
    Other AVPlayerViewController Properties
    Picture-in-Picture
    Introducing AV Foundation
    Some AV Foundation Classes
    Things Take Time
    Time Is Measured Oddly
    Constructing Media
    AVPlayerLayer
    Further Exploration of AV Foundation
    UIVideoEditorController
  16. Music Library
    Music Library Authorization
    Exploring the Music Library
    Querying the Music Library
    Persistence and Change in the Music Library
    Music Player
    Setting the Queue
    Modifying the Queue
    Player State
    MPVolumeView
    Playing Songs with AV Foundation
    Media Picker
  17. Photo Library and Camera
    Browsing with UIImagePickerController
    Image Picker Controller Presentation
    Image Picker Controller Delegate
    Dealing with Image Picker Controller Results
    Photos Framework
    Querying the Photo Library
    Modifying the Library
    Being Notified of Changes
    Fetching Images
    Editing Images
    Photo Editing Extension
    Using the Camera
    Capture with UIImagePickerController
    Capture with AV Foundation
  18. Contacts
    Contact Classes
    Fetching Contact Information
    Fetching a Contact
    Repopulating a Contact
    Labeled Values
    Contact Formatters
    Saving Contact Information
    Contact Sorting, Groups, and Containers
    Contacts Interface
    CNContactPickerViewController
    CNContactViewController
  19. Calendar
    Calendar Database Contents
    Calendars
    Calendar Items
    Calendar Database Changes
    Creating Calendars, Events, and Reminders
    Events
    Alarms
    Recurrence
    Reminders
    Proximity Alarms
    Fetching Events and Reminders
    Calendar Interface
    EKEventViewController
    EKEventEditViewController
    EKCalendarChooser
  20. Maps
    Map Views
    Displaying a Region
    Scrolling and Zooming
    Other Map View Customizations
    Map Images
    Annotations
    Customizing an MKMarkerAnnotationView
    Changing the Annotation View Class
    Custom Annotation View Class
    Custom Annotation Class
    Annotation View Hiding and Clustering
    Other Annotation Features
    Overlays
    Custom Overlay Class
    Custom Overlay Renderer
    Other Overlay Features
    Map Kit and Current Location
    Communicating with the Maps App
    Geocoding, Searching, and Directions
    Geocoding
    Searching
    Directions
  21. Sensors
    Core Location
    Location Manager and Delegate
    Location Services Authorization
    Location Tracking
    Where Am I?
    Continuous Background Location
    Location Monitoring
    Heading
    Acceleration, Attitude, and Activity
    Shake Events
    Using Core Motion
    Raw Acceleration
    Gyroscope
    Other Core Motion Data
    IV. Final Topics
  22. Persistent Storage
    The Sandbox
    Standard Directories
    Inspecting the Sandbox
    Basic File Operations
    Saving and Reading Files
    File Coordinators
    File Wrappers
    User Defaults
    Simple Sharing and Previewing of Files
    File Sharing
    Document Types and Receiving a Document
    Handing Over a Document
    Previewing a Document
    Quick Look Previews
    Document Architecture
    A Basic Document Example
    iCloud
    Document Browser
    Custom Thumbnails
    Custom Previews
    Document Picker
    XML
    JSON
    Coding Keys
    Custom Decoding
    SQLite
    Core Data
    PDFs
    Image Files
  23. Basic Networking
    HTTP Requests
    Obtaining a Session
    Session Configuration
    Session Tasks
    Session Delegate
    HTTP Request with Task Completion Function
    HTTP Request with Session Delegate
    One Session, One Delegate
    Delegate Memory Management
    Session and Delegate Encapsulation
    Downloading Table View Data
    Background Session
    On-Demand Resources
    In-App Purchases
  24. Threads
    Main Thread
    Background Threads
    Why Threading Is Hard
    Blocking the Main Thread
    Manual Threading
    Operation
    Grand Central Dispatch
    Commonly Used GCD Methods
    Synchronous Execution
    Dispatch Groups
    One-Time Execution
    Concurrent Queues
    Checking the Queue
    App Backgrounding
    Background Processing
  25. Undo
    Target–Action Undo
    Undo Grouping
    Functional Undo
    Undo Interface
    Shake-To-Edit
    Built-In Gestures
    Undo Menu
    A. Lifetime Events
    Application States
    Delegate Events
    Lifetime Scenarios
    Major State Changes
    Paused Inactivity
    Transient Inactivity on the iPad
    Multiple Windows
    Scene Death in the App Switcher
    Lifetime Event Timing
    B. Some Useful Utility Functions
    Core Graphics Initializers
    Center of a CGRect
    Adjust a CGSize
    Delayed Performance
    Dictionary of Views
    Constraint Issues
    Named Views
    Subviews of Given Class
    Configure a Value Class at the Point of Use
    Downsize a UIImage
    C. How Asynchronous Works
    Index

作者介紹


Matt Neuburg has a PhD in Classics and has taught at many universities and colleges. He has been programming computers since 1968. He has written applications for Mac OS X and iOS, is a former editor of MacTech Magazine, and is a long-standing contributing editor for TidBITS. His previous O'Reilly books are Frontier: The Definitive Guide, REALbasic: The Definitive Guide, and AppleScript: The Definitive Guide. He makes a living writing books, articles, and software documentation, as well as by programming, consulting, and training.




相關書籍

Android 5.X + SQLite POS 前端銷售 App 系統設計寶典–使用 Android Studio 開發, 2/e

作者 孫惠民

2020-01-14

移動通信技術與網絡優化, 2/e

作者 劉建成

2020-01-14

學會 iOS 遊戲程式設計的 16 堂課─動手撰寫你的第一隻 iPhone 遊戲(Learning iOS Game Programming: A Hands-On Guide to Building Your First iPhone Game )

作者 Michael Daley 楊仁和 譯

2020-01-14