All Projects → della-padula → Elliotable

della-padula / Elliotable

Licence: apache-2.0
'Elliotable' is an iOS-based timetable library. It can beautifully represent timetable information.

Programming Languages

swift
15916 projects

Projects that are alternatives of or similar to Elliotable

Aaviewanimator
AAViewAnimator is a set of animations designed for UIView, UIButton, UIImageView with options in iOS, written in Swift.
Stars: ✭ 33 (-21.43%)
Mutual labels:  cocoapods
Swiftysound
SwiftySound is a simple library that lets you play sounds with a single line of code.
Stars: ✭ 995 (+2269.05%)
Mutual labels:  cocoapods
Istimeline
Simple timeline view written in Swift 3
Stars: ✭ 1,005 (+2292.86%)
Mutual labels:  cocoapods
Mcplayerkit
MCPlayerKit is iOS Player, PlayerCoreType: AVPlayer can use play some video, IJKPlayer type can play video, Live ...
Stars: ✭ 34 (-19.05%)
Mutual labels:  cocoapods
Tangramkit
TangramKit is a powerful iOS UI framework implemented by Swift. It integrates the functions with Android layout,iOS AutoLayout,SizeClass, HTML CSS float and flexbox and bootstrap. So you can use LinearLayout,RelativeLayout,FrameLayout,TableLayout,FlowLayout,FloatLayout,LayoutSizeClass to build your App 自动布局 UIView UITableView UICollectionView
Stars: ✭ 984 (+2242.86%)
Mutual labels:  cocoapods
Aerogear Ios Http
Lightweight lib around NSURLSession to ease HTTP calls
Stars: ✭ 39 (-7.14%)
Mutual labels:  cocoapods
Jiramobilekit
JIRA Mobile Kit a framework for raising bugs within your app including screenshots easily. JIRA Bug Raising written in Swift. iOS JIRA SDK Swift 3-4
Stars: ✭ 33 (-21.43%)
Mutual labels:  cocoapods
Dknetworking
基于 AFNetworking + YYCache 的二次封装,支持缓存策略的网络请求框架
Stars: ✭ 41 (-2.38%)
Mutual labels:  cocoapods
Ftpopovermenu
FTPopOverMenu is a pop over menu for iOS which is maybe the easiest one to use. Supports both portrait and landscape. It can show from any UIView, any UIBarButtonItem and any CGRect.
Stars: ✭ 988 (+2252.38%)
Mutual labels:  cocoapods
Sketchkit
A lightweight auto-layout DSL library for iOS & tvOS.
Stars: ✭ 40 (-4.76%)
Mutual labels:  cocoapods
Scenekit Bezier Animations
Create animations over Bezier curves of any number of points
Stars: ✭ 35 (-16.67%)
Mutual labels:  cocoapods
Sica
🦌 Simple Interface Core Animation. Run type-safe animation sequencially or parallelly
Stars: ✭ 980 (+2233.33%)
Mutual labels:  cocoapods
Gaugekit
Kit for building custom gauges + easy reproducible Apple's style ring gauges.
Stars: ✭ 997 (+2273.81%)
Mutual labels:  cocoapods
Rainbowbar
Progress bar with wild animation for notched status bar
Stars: ✭ 34 (-19.05%)
Mutual labels:  cocoapods
Cocoapods Binary
integrate pods in form of prebuilt frameworks conveniently, reducing compile time
Stars: ✭ 1,004 (+2290.48%)
Mutual labels:  cocoapods
Motion Animator Objc
A Motion Animator creates performant, interruptible iOS animations from motion specs.
Stars: ✭ 33 (-21.43%)
Mutual labels:  cocoapods
Grview
UIView and other UIKit elements with a gradient and other attributes for IOS
Stars: ✭ 39 (-7.14%)
Mutual labels:  cocoapods
Wstagsfield
An iOS text field that represents tags, hashtags, tokens in general.
Stars: ✭ 1,013 (+2311.9%)
Mutual labels:  cocoapods
Fugen
Command line tool for exporting resources and generating code from your Figma files
Stars: ✭ 41 (-2.38%)
Mutual labels:  cocoapods
Fontblaster
Programmatically load custom fonts into your iOS and tvOS app.
Stars: ✭ 1,000 (+2280.95%)
Mutual labels:  cocoapods

Elliotable

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.

Released Service using Elliotable

Yourssu Ground iOS : App Store Link

XCode 12.3 Build Success!!

What's New in v1.2.5

  • Professor Name Added

Demo Project

Go to Demo Project Git

Swift UI Supported

Go to ElliotableSwiftUI for Swift UI.

Korean Version

Click the link below to view the Korean version READMD.md.
한국어 사용 가이드

Android Version

MinTimetable

Author Information

Timetable Library for iOS Development
Author : Denny.K (Taein Kim) / Seoul, South Korea
Email : [email protected]
YouTube : https://www.youtube.com/channel/UC7W2lBYHzGYlIZogDNbwUxA
Blog : https://terry-some.tistory.com/ Newest Version : 1.2.5 (Cocoapods)

Version Version Version License Platform

Screenshot

Portrait & Landscape Timetable

screenshot

Installation

Cocoapods

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

pod 'Elliotable'

Usage

Course Item Structure

courseId : The identifier of the course   
courseName : The name of the course
roomName : The name of the lecture room
professor : Professor Name
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

How to use

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

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", professor: "TEST", courseDay: .tuesday, startTime: "12:00", endTime: "13:15", backgroundColor: [UIColor])

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

Finally, define the properties of the timetable.

@IBOutlet var elliotable: Elliotable!

Delegate Pattern

Elliotable uses Delegate Pattern.

class ViewController : UIViewController, ElliotableDelegate, ElliotableDataSource {

}
// Delegate Pattern  
elliotable.delegate = self  
elliotable.dataSource = self

Course Item Application

To apply the course, please use the courseItems method among the Delegate methods.

// Set course Items
func courseItems(in elliotable: Elliotable) -> [ElliottEvent] {  
    return courseList  
}  

Update Course Item

If you change the course item, you should call the reloadData function to allow new data to be applied.

elliotable.reloadData()  

Course Item Event Listener

There are two touch events for lecture items, a regular touch event and a long touch event.

// Course Tap Event  
func elliotable(elliotable: Elliotable, didSelectCourse selectedCourse: ElliottEvent) { }  

// Course Long Press Event  
func elliotable(elliotable: Elliotable, didLongSelectCourse longSelectedCourse : ElliottEvent) { }  

Course Item Round Corder Option Configuration

If you want to process the round for the lecture item, you can apply the following options.

// Course Item Round Option : .none, .all, .left(topLeft, bottomRight), .right(topRight, bottomLeft)
elliotable.roundCorner   = .none

screenshot

Day Symbol Definition

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

Day Section Configuration

The section representing the day of the week can be implemented using textPerIndex and numberOfDays.

func elliotable(elliotable: Elliotable, at textPerIndex: Int) -> String {  
    return self.daySymbol[textPerIndex]  
}  
  
func numberOfDays(in elliotable: Elliotable) -> Int {  
    return self.daySymbol.count  
}  

Border Option Configuration

To apply the timetable border properties, you can apply them as follows. For the result screen, see screenshots.

// Full Border Option
elliotable.isFullBorder = true

screenshot

Other Timetable Properties

// 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)

// Course Item Properties
elliotable.textEdgeInsets = UIEdgeInsets(top: 2, left: 3, bottom: 2, right: 10)
elliotable.courseItemMaxNameLength = 18
elliotable.courseItemTextSize      = 12.5
elliotable.courseTextAlignment     = .left
// Course Item Round Radius
elliotable.borderCornerRadius = 24
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  
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].