TimelineTableViewCell is a simple timeline view implemented by UITableViewCell. The UI design of TimelineTableViewCell is inspired by ISTimeline.
- iOS 12.0 or higher
- Swift 3
- Swift 4
- Swift 5
- Breaking Changes for v1.3-: thumbnailImageView is replaced with UIStackView to support multiple thumbnails.
- Do not support iOS9.0- anymore.
The Swift Package Manager is a tool for automating the distribution of Swift code and is integrated into the swift compiler.
Once you have your Swift package set up, adding TimelineTableViewCell as a dependency is as easy as adding it to the dependencies value of your Package.swift.
dependencies:[.package(url:"https://github.com/kf99916/TimelineTableViewCell.git")]CocoaPods is a dependency manager for Cocoa projects. For usage and installation instructions, visit their website. To integrate TimelineTableViewCell into your Xcode project using CocoaPods, specify it in your Podfile:
pod'TimelineTableViewCell'import TimelineTableViewCellAfter 2.2.3 with SPM:
letbundle=Bundle(for:TimelineTableViewCell.self)guardlet nibUrl = bundle.url(forResource:"TimelineTableViewCell_TimelineTableViewCell", withExtension:"bundle"),let nibBundle =Bundle(url: nibUrl)else{return} // guard is optional
lettimelineTableViewCellNib=UINib(nibName:"TimelineTableViewCell", bundle: nibBundle)
controller.tableView.register(timelineTableViewCellNib, forCellReuseIdentifier:"TimelineTableViewCell")with CocoaPods:
letbundle=Bundle(for:TimelineTableViewCell.self)letnibUrl= bundle.url(forResource:"TimelineTableViewCell", withExtension:"bundle")lettimelineTableViewCellNib=UINib(nibName:"TimelineTableViewCell",
bundle:Bundle(url: nibUrl!)!)
tableView.register(timelineTableViewCellNib, forCellReuseIdentifier:"TimelineTableViewCell")letcell= tableView.dequeueReusableCell(withIdentifier:"TimelineTableViewCell",
for: indexPath)as!TimelineTableViewCell
// Configure TimelineTableViewCell...The point in line is represented by a TimelinePoint object.var diameter: CGFloat the diameter of a point in the line (default 6.0)var lineWidth: CGFloat the thickness of the point (default 2.0)var color: UIColor the color of each point in the line (default UIColor.black)var isFilled: Bool fills the point in the line (default false)
TimelinePoint(diameter: CGFloat, lineWidth: CGFloat, color: UIColor, filled: Bool)TimelinePoint(diameter: CGFloat, color: UIColor, filled: Bool)TimelinePoint(color: UIColor, filled: Bool)TimelinePoint()The line in the cell is represented by a Timeline object and is divided by the point as the front line and the backline.var width: CGFloat the thickness of the line (default 2.0)var frontColor: UIColor the color of the front line (defalut UIColor.black)var backColor: UIColor the color of the back line (defalut UIColor.black)var leftMargin: CGFloat the left margin of the line (default 60.0)
Timeline(width: CGFloat, frontColor: UIColor, backColor: UIColor)Timeline(frontColor: UIColor, backColor: UIColor)Timeline()The cell is represented by a TimelineTableViewCell object.titleLabel: UILabel! the title in the bubbledescriptionLabel: UILabel! the descriptionlineInfoLabel: UILabel! the information about linethumbnailImageView: UIImageView! the thumbnail
illustrationImageView: UIImageView! the illustrationvar bubbleRadius: CGFloat the radius of the bubble corners (default 2.0)var bubbleColor: UIColor the color of every bubble (default .init(red: 0.75, green: 0.75, blue: 0.75, alpha: 1.0))
viewsInStackView: [UIView] the views in the stack view.
var bubbleEnabled: Bool Enable draw bubble (default true)
If you are using TimelineTableViewCell in your app and want to be listed here, simply create a pull request.
I am always curious who is using my projects :)
Hikingbook - by Zheng-Xiang Ke
TimelineTableViewCellDemo is a simple demo app which shows the usage of TimelineTableViewCell in a storyboard.
Zheng-Xiang Ke, kf99916@gmail.com
TimelineTableViewCell is available under the MIT license. See the LICENSE file for more info.


