Topics Covered in This iOS Development Tutorial:
Adding an Image Placeholder, Title, & Subtitle, Adding Info to Labels, Adding a Description, Adding a Divider
Exercise Completion Checklist
96x96 pixel placeholder for band images
Band name with bold 20pt font and music type with 14pt
Venue, date, time, and pricing labels with proper styling
Multi-line text area for band descriptions
Horizontal separator between content sections
High-resolution images with Retina support
Exercise Preview

Exercise Overview
In this exercise, you'll master one of the most common patterns in iOS development: creating detailed view controllers that display comprehensive information when users navigate deeper into your app. We'll build the layout for the band detail screen that appears when a user taps on a band in the list, implementing professional UI patterns that users expect in modern iOS applications.
Getting Started
If you completed the previous exercise, you can skip the following sidebar. However, we strongly recommend completing the foundational exercises (1B–1D) sequentially, as each builds essential skills for professional iOS development.
If you completed the previous exercise, Jive Factory.xcodeproj should still be open in Xcode. If you closed it, navigate to yourname-iOS Dev Level 2 Class > Jive Factory and reopen the project file.
Project ContinuityThis exercise builds on previous lessons 1B-1D. If you haven't completed them, use the provided starter project to ensure all dependencies are in place.
If You Did Not Complete the Previous Exercises (1B–1D)
- Close any open files and return to your Desktop.
- Navigate to Class Files > yourname-iOS Dev Level 2 Class.
- Duplicate the Jive Factory Ready for Band Detail View folder.
- Rename the duplicated folder to Jive Factory.
- Open Jive Factory > Jive Factory.xcodeproj in Xcode.
Adding an Image Placeholder, Title, & Subtitle
Professional detail views follow established design patterns that users recognize immediately. We'll begin by implementing the header section with an image, primary title, and subtitle—a layout pattern you'll find in apps like Apple Music, Spotify, and countless other successful iOS applications.
- In the Document Outline, locate the View Controller Scene section and click View Controller to select it.
- In the Utilities panel on the right side of Xcode, click the File inspector tab
. Before we start building, let's examine our target layout. This reference shows the polished interface we're creating in this exercise:

Now we'll add the band image placeholder. The Image View component is the standard UIKit element for displaying single images in iOS apps. In the search bar at the bottom of the Object library
, type: image- Drag the Image View onto the empty view controller canvas in Interface Builder. Don't worry about precise placement yet—we'll position it accurately in the next steps.
- The default size is too large for our layout, so we need to resize it precisely. In the Utilities panel on the right, click the Size inspector tab
. Configure the exact dimensions and position using these values (press Return after entering the final value to apply all changes):
X: 20 Y: 96 Width: 96 Height: 96 - Next, we'll add the band name label. Labels are fundamental UI elements in iOS, used for displaying text throughout the system. In the search bar of the Object library
, clear the existing text and type: label - Drag the Label to the right of the Image View. We'll position it precisely in the following steps.
- Double-click the Label in the Editor to enter edit mode, change the placeholder text to Name of Band, and press Return to confirm.
With the label selected, use the Size inspector
to set these exact coordinates:X: 132 Y: 95 Width: 166 Height: 21 - Now we'll style the band name to establish visual hierarchy. Click the Attributes inspector tab
. Click the Text Menu icon
next to the Font setting and configure:Style: Bold Size: 20 NOTE: As of iOS 9, Apple uses San Francisco as the default system font, which provides excellent readability across all device sizes and is specifically designed for digital interfaces.
- Click Done to apply the font changes.
- For the music genre label, we'll add another label with different styling to create clear information hierarchy. Drag another Label from the Object library
and position it below the Name of Band label. - Double-click the new label to enter edit mode.
- Change the text to Type of music and press Return.
- With the Type of music label selected, access the Attributes inspector
and click the Text Menu icon
. - Set the Size to 14 to create visual hierarchy with the band name.
- Click Done.
- To follow iOS design guidelines, we'll use Apple's standard blue color for secondary information. In the Attributes inspector
, click the color menu next to Color (currently showing Default). - If Apple's standard blue appears in the Recently Used Colors section, select it and skip the next step.
To match Apple's system blue precisely, follow these steps:
- Choose Other to open the full Colors window.
- Click the second tab
at the top of the Colors window. - Ensure RGB Sliders is selected in the dropdown menu.
- Enter these exact values: R:0, G:122, B:255.
- Close the Colors window.
Position the genre label using the Size inspector
:X: 132 Y: 115 Width: 166 Height: 21
Image View Setup Process
Add Image View Component
Drag Image View from Object library onto the view controller canvas
Set Precise Dimensions
Configure Size inspector with X:20, Y:96, Width:96, Height:96
Add Band Name Label
Place label with bold 20pt font at coordinates X:132, Y:95
Configure Music Type Label
Add subtitle with 14pt font and blue color (RGB: 0,122,255)
Adding Show Information Labels
Now we'll build the event details section, which provides essential information users need when deciding whether to attend a show. This follows the information architecture pattern used in successful event and entertainment apps.
- From the Object library
, drag a Label and position it below the Type of music label. - Double-click the new label, rename it Venue, and press Return.
Use the Size inspector
to position the venue label precisely:X: 132 Y: 135 Width: 166 Height: 21 We'll make the venue name bold to emphasize its importance as a key piece of event information. In the Attributes inspector
, click the Text Menu icon
and configure:Style: Bold Size: 14 - Click Done.
- To efficiently create similar labels, we'll duplicate the venue label. Hold Option and drag the Venue label downward—this creates an exact copy with the same formatting.
- Double-click the duplicated label, rename it Date, and press Return.
- Since date information is typically displayed in regular weight, access the Attributes inspector
and click the Text Menu icon
. - Change the Style to Regular.
- Click Done.
Position the date label using the Size inspector
:X: 132 Y: 155 Width: 55 Height: 21 - For the show time, we'll place it adjacent to the date for logical grouping. Hold Option and drag the Date label to the right to create a copy.
- Double-click the copy and rename it Time.
Position the time label in the Size inspector
:X: 191 Y: 155 Width: 60 Height: 21 - We need one final label for pricing and age restriction information. Hold Option and drag the Date label downward to create another copy.
- Double-click this new label and rename it Age / price.
Position this label using the Size inspector
:X: 132 Y: 174 Width: 166 Height: 21
Adding a Description
The description area provides space for detailed information about the band or event. This multi-line text region is essential for giving users the context they need to make informed decisions.
- We need one final label for the band description. Drag a Label from the Object library
and position it below the Image View. - Double-click the label, rename it Description, and press Return.
Configure the description area dimensions in the Size inspector
:X: 20 Y: 219 Width: 280 Height: 39 NOTE: This description field is designed to accommodate variable text lengths. Currently, the text centers vertically within the label bounds, but this can create awkward spacing when content varies between one and two lines. In a later exercise, you'll learn to programmatically set the vertical alignment to top, ensuring consistent visual presentation regardless of content length.
Set the appropriate font size for body text. In the Attributes inspector
, click the down arrow next to Font repeatedly until the size reaches 14:
Description Label Specifications
Adding a Divider
Visual separators help users parse information quickly and create clear sections within your interface. While UIKit doesn't include a dedicated line component, professional developers commonly use thin views to create effective dividers.
We'll create a horizontal line to separate the header information from the description. In the search bar at the bottom of the Object library
, clear the existing text and type view.NOTE: View appears near the end of the Object library list, as it's one of the most fundamental UI components in UIKit.
- Drag the View object onto the canvas below the description area. We'll configure its appearance and dimensions in the following steps.
- To create a proper divider, we need to set the background color. In the Attributes inspector
, click the color bar next to Background. If a dropdown menu appears, choose Other to access the full Colors window. - At the top of the Colors window, click the second tab
to access the color sliders interface. - From the Color Sliders dropdown menu, select Gray Scale Slider for precise gray control.
- In the Brightness field, enter 85 for the percentage value and press Return. This creates a subtle gray that provides separation without being visually intrusive.
- Close the Colors window.
Transform the view into a thin horizontal line using these precise measurements in the Size inspector
:X: 0 Y: 207 Width: 375 Height: 1 These settings create a full-width horizontal line positioned precisely between the upper information section and the description, following iOS interface guidelines for content separation.
Creating Visual Separator
Add View Object
Drag a View component to serve as horizontal divider line
Configure Gray Background
Set background color using Gray Scale Slider at 85% brightness
Set Line Dimensions
Configure as 375 pixels wide by 1 pixel tall for clean separation