Web Views and Scrollers

Chapter 3 introduced the UITextView object and its setHTML method for the creation of HTML formatted windows. The UIWebView object builds a browser-like world around a UITextView, and adds many of the basic routines you'd find in a web browser: fetching pages remotely, navigating forward and backward, and perform zooming and scaling. It is one of the core components that make Safari tick, and the best part is a UIWebView can be used in your own applications. Not only can web views display HTML pages, they can also display PDFs (local and remote), images, and any other kind of file that is supported in Safari.

Sean Heber of iApp-a-Day wrote a functional wrapper for the UIWebView class called SimpleWebView. You'll see how his class works in this section, and detail some of the improvements we've made on it.

Creating the Web View

A functional web view consists of three components:

  • The UIWebView object performs all fetching, zooming, and link handling for the view.

  • A UIScroller object is needed to scroll the web view, especially when zoomed.

  • An NSURLRequest object is provided as the class pointing to the resource to fetch.

Sean's SimpleWebView class encapsulates these objects into a controlling UIView class based on UIView:

@interface SimpleWebView : UIView {
    UIWebView *webView;
    UIScroller *scroller;
    NSURLRequest *urlRequest;
}
-(id)initWithFrame:(CGRect)frame;
-(void)loadURL:(NSURL *)url;
-(void)dealloc;

SimpleWebView overrides its base class's initWithFrame method. ...

Get iPhone Open Application Development now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.