Fun With UIScrollView
It enables users to scroll within that content by making swiping gestures, and to zoom in and back from portions of the content by making pinching gestures.
Today, at Flatiron, I presented a Tech Talk that provided a tour of UIScrollView. The UIScrollView class provides support for displaying content that is larger than the size of the application’s window. It enables users to scroll within that content by making swiping gestures, and to zoom in and back from portions of the content by making pinching gestures. On a phone, and even an iPad, this is crucial.
UIScrollView is the superclass of several UIKit classes including:
The UIScrollView class can have a delegate that must adopt the UIScrollViewDelegate protocol. For zooming and panning to work, the delegate must implement both viewForZoomingInScrollView: and scrollViewDidEndZooming:withView:atScale:; in addition, the maximum (maximumZoomScale) and minimum (minimumZoomScale) zoom scale must be different.
Apple is a Heavy User of UIScrollView and its the first thing a user sees in Apple’s Nesting of Scroll Views usage at the Lock Screen. Some notable examples are:
iOS 7 Lock Screen: Scroll To Unlock Two Page Scroll View
Notifications are an Embedded Vertical Scroll View where Each Notification is an Embedded Horizontal Scroll View
the list goes on and on
I then presented some examples of my own attempts at a cross directional UIScrollView implementation like those seen in the MLB AtBat App, Facebook, or Pulse. In my journeys I also wanted to implement paging of images in my examples and I encountered the UIPageViewController class which was introduced in iOS 5 as a mechanism to implement a page turning style of user interface in iOS applications. It is the successor to the UIPageControl class and as such is easier to use. I showcased the Path App as utilizing a Tutorial that can easily be done with this class and my own attempt to implement it.
Another area of note is the Apple Apple PhotoScroller Sample App iOS Developer Library sample project which demonstrates the use of embedded UIScrollViews and CATiledLayer to create a rich user experience for displaying and paginating photos that can be individually panned and zoomed. This sample goes over the top with CATiledLayer which is used to increase the performance of paging, panning, and zooming with high-resolution images or large sets of photos.
Finally, after reviewing GitHub I found a great open source (MIT License) project by Andrey Tarantsov of Russia called ATPagingView. This is a great library of code for exactly what we toured in the talk: implementing timed horizontal scrolling of several images which take up most of the screen. You have to implement the timer yourself that switches the view, and it does have user enabled switching as well.
This was my first Tech Talk and I look forward now to starting my CapStone project.
Disclaimer: The information in this blog is current as of 12 November 2013. Current policies, offerings, procedures, and programs may differ. For up-to-date information visit FlatironSchool.com.
Posted by Flatiron School / November 12, 2013
Learn to Code Python: Free Lesson for Beginners
Your Software Engineering Roadmap: Climbing the Career Ladder
If you’ve decided a software engineering career is for you, here’s your software engineering roadmap and guide to climbing the career ladder.