2️⃣UIKit + AutoLayout

Fall 2025

If you are having trouble with anything within the course, please reach out to the instructors or make a post on Ed Discussion.

Lecture Slides

Lecture Video

Lecture Demo Code

If you prefer to download the ZIP, go to Code > Download ZIP in the Github Repository website.

Clone the Repository

git clone https://github.com/intro-to-ios/lec2-uikit
OR git clone [email protected]:intro-to-ios/lec2-uikit.git

Checkout Branches

git checkout origin/1-uilabel
OR git checkout 1-uilabel

git checkout origin/2-uiimageview
OR git checkout 2-uiimageview

Classes Demo Code

class Student {
    // Properties
    var name: String
    var major: String
    var age: Int

    // Initializer
    init(name: String, major: String, age: Int) {
        self.name = name
        self.major = major
        self.age = age
    }
}

// Creating an instance of Student
let jay = Student(name: "Jay", major: "CS", age: 67)
// Access properties like below
jay.name
jay.major
jay.age

// NOTE: the super class of `EngineeringStudent` is `Student`
class EngineeringStudent: Student {
    // Inherits all properties and function from 'Student'
    // Define more properties
    var doesShower: Bool

    init(name:String, major:String, age: Int, doesShower: Bool) {
        self.doesShower = doesShower // Initalize property specific to this class
        super.init(name: name, major: major, age: age) // Call the super class's initializer
    }
}

// Creating an instance of EngineeringStudent
let asen = EngineeringStudent(name: "Asen", major: "CS", age: 22, doesShower: false)
asen.doesShower // This works fine since asen is an EngineeringStudent
jay.doesShower  // This DOESN'T work since jay is a Student. `doesShower` 
                //    is a property of EngineeringStudent but not Student

Last updated

Was this helpful?