Elliotable is simple library to generate Timetable of University.
If you only add a course, the course time is automatically calculated and added to the timetable.

What's New in v1.1.11

Scroll Issue Resolved.(Hotfix)
Table Cell Issue Resolved. (Hotfix)
Time Cell Refresh Issue Resolved. (Hotfix)


Portrait & Landscape Timetable




Elliotable is available through CocoaPods, to install it simply add the following line to your Podfile:

pod 'Elliotable'


Day Symbol Definition

private let daySymbol = ["Mon", "Tue", "Wed", "Thu", "Fri"]   

Item Click Handler Implementaion

let handler = { (course: ElliottEvent) in   
    print(course.courseName, course.courseDay)   

Course Item Structure

courseId : The identifier of the course   
courseName : The name of the course
roomName : The name of the lecture room
courseDay : Weekday of the course
startTime : Start time of course (String type - format : "HH:mm")
endTime : End time of course (String type - format : "HH:mm")
backgroundColor : backgroud color of each course item
(Optional) textColor: Course Item Text Color
tapHandler : on Touch Event Listener for each course item.

How to use

On your storyboard, just add a View Component.
On the Inspector Frame, choose the View class to Elliotable
This is screenshot how to bind the view into swift file.

First, import my library by adding line below.

import Elliotable

And then, create courses to add to the timetable.

let course_1 = ElliottEvent(courseId: "c0001", courseName: "Operating System", roomName: "IT Building 21204", courseDay: .tuesday, startTime: "12:00", endTime: "13:15", backgroundColor: [UIColor], tapHandler: handler)

let course_2 = ElliottEvent(courseId: "c0002", courseName: "Operating System", roomName: "IT Building 21204", courseDay: .thursday, startTime: "12:00", endTime: "13:15", textColor: UIColor.white, backgroundColor: [UIColor], tapHandler: handler)

Finally, define the properties of the timetable.

@IBOutlet var elliotable: Elliotable!

// Course Item List & Day Symbol
elliotable.courseItems = [course_1, course_2, course_3, course_4, course_5, course_6, course_7, course_8, course_9, course_10]
// Course Item Round Option : .none, .all, .left(topLeft, bottomRight), .right(topRight, bottomLeft)
elliotable.roundCorner   = .none


elliotable.userDaySymbol = daySymbol     
// Table Item Properties
elliotable.elliotBackgroundColor = UIColor.white
elliotable.borderWidth        = 1
elliotable.borderColor        = UIColor(red: 0.85, green: 0.85, blue: 0.85, alpha: 1.0)
elliotable.borderCornerRadius = 24

// Course Item Properties
elliotable.textEdgeInsets = UIEdgeInsets(top: 2, left: 3, bottom: 2, right: 10)
elliotable.courseItemMaxNameLength = 18
elliotable.courseItemTextSize      = 12.5
elliotable.courseTextAlignment     = .left
elliotable.roomNameFontSize        = 8

// courseItemHeight - default : 60.0
elliottable.courseItemHeight       = 70.0

// Day Symbol & Leftside Time Symbol Properties
elliotable.symbolFontSize = 14
elliotable.symbolTimeFontSize = 12
elliotable.symbolFontColor = UIColor(displayP3Red: 0.1, green: 0.1, blue: 0.1, alpha: 1.0)
elliotable.symbolTimeFontColor = UIColor(displayP3Red: 0.5, green: 0.5, blue: 0.5, alpha: 1.0)
elliotable.symbolBackgroundColor = UIColor(named: "main_bg") ?? .white  

Author Information

Timetable Library for iOS Development
Author : Elliott Kim / Seoul, South Korea
Email : [email protected]
Blog : https://terry-some.tistory.com/
Newest Version : 1.1.6 (Cocoapods)