Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint
Share this Page URL
Help

Creating User Interfaces

In Figures 5.1 and 5.2, you’ve seen an empty view and a fully fleshed-out interface. Now, how do we get from one to the other? In this section, we explore how interfaces are created with Interface Builder. In other words, it’s time for the fun stuff.

If you haven’t already, open the Empty.storyboard file included in this hour’s Projects folder. Make sure the Document Outline area is visible and that the view can be seen in the Editor; you’re ready to start designing an interface.

The Object Library

Everything that you add to a view, from buttons and images to web content, comes from the Object Library. You can view the Library by choosing View, Utilities, Show Object Library from the menu bar (Control+Option+Command+3). If it isn’t already visible, the Utility area of the Xcode interface opens, and Object Library is displayed in the lower right. Make sure that the Objects item is selected in the pop-up menu at the top of the library so that all available options are visible.


Watch Out!: Libraries, Libraries, Everywhere!

Xcode has more than one library. The Object Library contains the UI elements you’ll be adding in Interface Builder, but there are also File Template, Code Snippet, and Media libraries that can be activated by clicking the icons immediately above the Library area.

If you find yourself staring at a library that doesn’t seem to show what you’re expecting, click the cube icon above the library or reselect the Object Library from the menu to make sure you’re in the right place.


When you click and hover over an element in the library, a popover is displayed with a description of how the object can be used in the interface, as shown in Figure 5.4. This provides a convenient way of exploring your UI options without having to open the Xcode documentation.

Figure 5.4 The library contains a palette of objects that can be added to your views.

Image

Did You Know?

Using view buttons at the top of the library, you can switch between list and icon views of the available objects. You can also focus in on specific UI elements using the pop-up menu above the library listing. If you know the name of an object but can’t locate it in the list, use the filter field at the bottom of the library to quickly find it.


Adding Objects to a View

To add an object to a view, just click and drag from the library to the view. For example, find the label object (UILabel) in the Object Library and drag it into the center of the view in the Editor. The label should appear in your view and read Label. Double-click the label and type Hello. The text will update, as shown in Figure 5.5, just as you would expect.

Figure 5.5 If an object contains text, in many cases, just double-click to edit it.

Image

With that simple action, you’ve almost entirely replicated the functionality implemented by the code fragment earlier in the lesson. Try dragging other objects from the Object Library into the view (buttons, text fields, and so on). With few exceptions, the objects should appear and behave just the way you’d expect.

To remove an object from the view, click to select it, and then press the Delete key. You may also use the options under the Edit menu to copy and paste between views or duplicate an element several times within a view.


By the Way

The +/- magnifying glasses in the lower right of the Editor area will zoom in and out on your interface for fine-tuning a scene. This will be useful when creating storyboards with multiple scenes. Unfortunately, you cannot edit a scene when zoomed out, so Apple provides the = button to quickly jump back and forth between a 100% view and your last chosen zoom setting.


Working with the IB Layout Tools

Instead of relying on your visual acuity to position objects in a view, Apple has included some useful tools for fine-tuning your layout. If you’ve ever used a drawing program like OmniGraffle or Adobe Illustrator, you’ll find many of these familiar.

Guides

As you drag objects in a view, you’ll notice guides (shown in Figure 5.6) appearing to help with the layout. These blue, dotted lines will be displayed to align objects along the margins of the view, to the centers of other objects in the view, and to the baseline of the fonts used in the labels and object titles.

Figure 5.6 Guides help position your objects within a view.

Image

As an added bonus, guides automatically appear to indicate the approximate spacing requirements of Apple’s interface guidelines. If you’re not sure why it’s showing you a particular margin guide, it’s likely that your object is in a position that Interface Builder considers “appropriate” for something of that type and size.


Did You Know?

You can manually add your own guides by choosing Editor, Add Horizontal Guide or by choosing Editor, Add Vertical Guide.


Selection Handles

In addition to the layout guides, most objects include selection handles to stretch an object horizontally, vertically, or both. Using the small boxes that appear alongside an object when it is selected, just click and drag to change its size, as demonstrated using a button in Figure 5.7.

Figure 5.7 Use the resize handles around the perimeter of an object to change its size.

Image

Note that some objects constrain how you can resize them; this preserves a level of consistency within iOS application interfaces.

Alignment

To quickly align several objects within a view, select them by clicking and dragging a selection rectangle around them or by holding down the Shift key, and then choose Editor, Align and an appropriate alignment type from the menu.

For example, try dragging several buttons into your view, placing them in a variety of different positions. To align them based on their horizontal center (a line that runs vertically through each button’s center), select the buttons, and then choose Editor, Align, Horizontal Centers. Figure 5.8 shows the before and after results.

Figure 5.8 Use the Align menu to quickly align a group of items to an edge or center.

Image

Did You Know?

To fine-tune an object’s position within a view, select it, and then use the arrow keys to position it left, right, up, or down, 1 pixel at a time.


The Size Inspector

Another tool that you may want to use for controlling your layout is the Size Inspector. Interface Builder has a number of “inspectors” for examining the attributes of an object. As the name implies, the Size Inspector provides information about sizes, but also position and alignment. To open the Size Inspector, first select the object (or objects) that you want to work with, and then click the ruler icon at the top of the Utility area in Xcode. Alternatively, choose View, Utilities, Show Size Inspector or press Option+Command+5 (see Figure 5.9).

Figure 5.9 The Size Inspector enables you to adjust the size and position of one or more objects.

Image

Using the fields at the top of the inspector, you can view or change the size and position of the object by changing the coordinates in the Height/Width and X/Y fields. You can also view the coordinates of a specific portion of an object by clicking one of the black dots in the size and grid to indicate where the reading should come from.


By the Way

Within the Size and Position settings, notice a drop-down menu where you can choose between Frame Rectangle and Layout Rectangle. These two settings will usually be similar, but there is a slight difference. The frame values represent the exact area an object occupies onscreen, whereas the layout values take into account spacing around the object.


The Autosizing settings of the Size Inspector determine how controls resize/reposition themselves when the device changes orientation. You’ll learn more about these in Hour 16, “Building Rotatable and Resizable User Interfaces.”

Finally, the same controls found under Editor, Align can be accessed via the pop-up menu at the bottom of the inspector. Choose your objects, and then choose an alignment from the menu.


Did You Know?

Hold down the option after selecting an object in Interface Builder. As you move your mouse around, it will show the distance between the selected object and other objects that you point to.