Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Preface
The Scope of This Book What’s Not in This Book From the Programming iOS 4 Preface Versions Acknowledgments Conventions Used in This Book Using Code Examples O’Reilly Online Learning How to Contact Us
I. Views
1. Views
Window and Root View
How an App Launches
iOS 12 and before iOS 13 with window scene support
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
Anchor notation Visual format notation
Constraints as Objects Margins and Guides
Safe area Margins Custom layout guides Constraint alignment
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
Size classes in the inspectors Size classes in the canvas
Xcode View Features
View Debugger Previewing Your Interface Designable Views and Inspectable Properties
Layout Events
2. Drawing
Images and Image Views
Image Files
Hardware-related image variants Vector images Asset catalogs and trait collections Namespacing image files Image files in the nib editor
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
Sublayer transform Transform layers
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
Preventing animation Conflicts and additive animations
View Animation Configuration
Animations function Completion function Animation duration Animation delay Animation timing Animation options
Timing Curves
Cubic timing curves Springing timing curves
Canceling a View Animation
Canceling a block-based animation Canceling a property animator’s animation Canceling a repeating animation
Frozen View Animation Custom Animatable View Properties Keyframe View Animation Transitions
Transitioning one view Transitioning two views and their superview
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
UIDynamicItemBehavior UIGravityBehavior UIFieldBehavior UIPushBehavior UICollisionBehavior UISnapBehavior UIAttachmentBehavior
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
The eponymous nib Automatic XIB file creation
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
Safe area Status bar Extended layout
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
View controller relationships during presentation Manual view controller presentation
Configuring a Presentation
Transition style Presentation style User dismissal of a sheet Current context presentation Configuration in the nib editor
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
Customizing the animation Customizing the presentation
Transition Coordinator
Page View Controller
Preparing a Page View Controller Page View Controller Navigation
Page indicator Navigation gestures
Other Page View Controller Configurations
Container View Controllers
Adding and Removing Children
The initial child view controller Replacing a child view controller
Status Bar, Traits, and Resizing
Previews and Context Menus Storyboards
Triggered Segues
Triggered segue behavior How a segue is triggered View controller communication
Container Views and Embed Segues Storyboard References Unwind Segues
Creating an unwind segue How an unwind segue works How the destination view controller is found How an unwind segue is performed Unwind segue customization
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
Label features Image view features Cell features Table view features
Registering a Cell Class Custom Cells
Overriding a cell’s subview layout Adding subviews in code Designing a cell in a nib Designing a cell in a storyboard
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
Minimal search results table Search bar in navigation bar No search results controller
Collection Views Collection View Classes Flow Layout Compositional Layout
Size, Count, Spacing, and Insets Supplementary Items Multiple Section Layouts Other Compositional Layout Features
Manual cell layout Nested groups Orthogonal scrolling
Collection View Diffable Data Source Basic Cell Manipulation
Selecting Cells Deleting Cells Menu Handling Rearranging Cells
Custom Collection View Layouts
Tweaking a Layout
Flow layout subclass Compositional layout invalidation handler
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
The drag source view The drop destination view
Item Providers
NSItemProviderWriting NSItemProviderReading Vending additional representations Receiving additional representations
Slow Data Delivery Additional Delegate Methods
Custom drag preview Additional animation Flocking
Table Views and Collection Views
Table view dragging Table view dropping Time-consuming table view drop data delivery Table view drop animations
Spring Loading iPhone and Local Drag and Drop
Multiple Windows
The Window Architecture Scene Creation Window Creation and Closing State Saving and Restoration
How state is saved How to restore state
Further Multiple Window Considerations
Drag and drop Data sharing Memory management
10. Text
Fonts and Font Descriptors
Fonts
System font Dynamic type
Symbol Images and Text Font Descriptors
Exploring font features Accessing typographical variants
Choosing a Font Adding Fonts
Fonts in the app bundle Downloadable Apple fonts Installed fonts
Attributed Strings
Attributed String Attributes Making an Attributed String
Tab stops Text attachments Other ways to create 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 input traits Accessory view Input view Input view without a text field Shortcuts bar Keyboard language
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
Multiple text containers Multiple layout managers
Layout Manager
Layout geometry of a text view Layout manager drawing
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
Communicating into a web page Communicating out of a web page JavaScript alerts
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
Individual bar button item settings Appearance bar button item settings
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
Custom actions Dismiss action Previews
Scheduling a Local Notification Hearing About a Local Notification Grouped Notifications Managing Notifications Notification Content Extensions
Action button management Interface interaction
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
Key–value observing a property Asynchronous property loading Remote assets
Time Is Measured Oddly Constructing Media
Cutting and pasting Adding tracks Transitions Filters Synchronizing animation with video Adding layers to video
AVPlayerLayer Further Exploration of AV Foundation
UIVideoEditorController
16. Music Library
Music Library Authorization Exploring the Music Library
Querying the Music Library
Forming a query Performing a query
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
Asking for a UIImage Canceling and caching Live photos, videos, and data
Editing Images
How to change a photo image Handling the adjustment data Example: Before editing Example: After editing
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
Existing contact New contact Unknown contact
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
Always authorization Forms of location monitoring Delegate method calls when your app isn’t running Location monitoring best practices
Heading
Acceleration, Attitude, and Activity
Shake Events Using Core Motion Raw Acceleration
Gravity and attitude Force applied by the user
Gyroscope
Device motion Absolute attitude Relative attitude Core Motion best practices
Other Core Motion Data
IV. Final Topics
22. Persistent Storage
The Sandbox
Standard Directories Inspecting the Sandbox Basic File Operations Saving and Reading Files
NSCoding Codable
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
Download task Data task
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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion