iOS開源 - 日歷組件

mg6247 8年前發布 | 8K 次閱讀 iOS開發 移動開發

Koyomi

Koyomiis a simple calender view framework for iOS, written in Swift :calendar:

Features

  • Simple Calender View :calendar:
  • Easily usable :sunglasses:
  • Customizable in any properties for appearance
  • Support @IBDesignable and @IBInspectable
  • Support Swift 2.3
  • Support Swift 3.0

Demo App

Open Example/Koyomi.xcworkspace and run Koyomi-Example to see a simple demonstration.

Usage

Koyomi is designed to be easy to use :sunglasses:

let frame = CGRect(x: 10, y : 20, width: 250, height: 300)
    let koyomi = Koyomi(frame: frame, sectionSpace: 1.5, cellSpace: 0.5, inset: UIEdgeInsetsZero, weekCellHeight: 25)
    view.addSubview(koyomi)

Koyomi is available in Interface Builder. Set custom class of UICollectionView to Koyomi

@IBOutlet weak var koyomi: Koyomi!

:calendar: Change displayed month

If you want to change displayed month, call display(in: MonthType) . MonthType is defined by three types.

public enum MonthType { case previous, current, next }

// change month
koyomi.display(in: .next)</pre> 

Get current month string

let currentDateString = koyomi.currentDateString(withFormat: "M/yyyy")

The selection state of date

You can select specific date.

let today = NSDate()
    let components = NSDateComponents()
    components.day = 7
    let weekLaterDay = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: today, options: NSCalendarOptions(rawValue: 0))
    koyomi.select(date: NSDate(), to: weekLaterDay)

// If want to select only one day, call koyomi.select(date: today)</pre> 

You can also unselect available.

koyomi.unselect(NSDate(), to: weekLaterDay) // or koyomi.unselect(NSDate())

    // unselect all date
    koyomi.unselectAll()

You can configure day color in selected state.

// Support @IBInspectable
    @IBInspectable public var selectedBackgroundColor: UIColor
    @IBInspectable public var selectedTextColor: UIColor

KoyomiDelegate

If you want to use KoyomiDelegate , set calenderDelegate to target

koyomi.calenderDelegate = self

Return the date user selected, when tapped cell

optional func koyomi(koyomi: Koyomi, didSelect date: NSDate, forItemAt indexPath: NSIndexPath)

Return the current month string, when changed month.

optional func koyomi(koyomi: Koyomi, currentDateString dateString: String)

    // if you want to change string format, use `currentDateFormat`
    koyomi.currentDateFormat = "M/yyyy"

:wrench: Customize Koyomi

Customize layout

// Support @IBInspectable
    @IBInspectable var sectionSpace: CGFloa
    @IBInspectable var cellSpace: CGFloat
    @IBInspectable var weekCellHeight: CGFloat
    // Public method
    public var inset: UIEdgeInsets

koyomi.inset = UIEdgeInsets(top: 0.5, left: 0.5, bottom: 0.5, right: 0.5)

Set sectionSpace , cellSpace , weekCellHeight in initialization or Interface Builder.

Customize text font

// set Day and Week Label Font
    koyomi
        .setDayFont(size: 12) 
        .setWeekFont(size: 8)

    // if want to change font name, use: 
    // setDayFont(fontName: ".SFUIText-Medium", size: 12)

Customize weeks text

koyomi.weeks = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]

Customize color

// Support @IBInspectable
    @IBInspectable public var sectionSeparatorColor: UIColor
    @IBInspectable public var separatorColor: UIColor
    @IBInspectable public var weekColor: UIColor
    @IBInspectable public var weekdayColor: UIColor
    @IBInspectable public var holidayColor: UIColor
    @IBInspectable public var otherMonthColor: UIColor
    @IBInspectable public var dayBackgrondColor: UIColor
    @IBInspectable public var weekBackgrondColor: UIColor
    @IBInspectable public var selectedBackgroundColor: UIColor
    @IBInspectable public var selectedTextColor: UIColor

You can configure the lots of color properties for appearance :weary:

Don't worry :stuck_out_tongue_closed_eyes: , you can easily configure appearance by using KoyomiStyle .

koyomi.style = .tealBlue

KoyomiStyle is defined by 10 types.

enum KoyomiStyle {
        case monotone, standard, red, orange, yellow, tealBlue, blue, purple, green, pink
    }

:memo: Requirements

  • iOS 8.0+
  • Xcode 8.0+

:computer: Installation

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

pod "Koyomi"

:coffee:? Author

shoheiyokoyama, shohei.yok0602@gmail.com

:unlock: License

Koyomi is available under the MIT license. See theLICENSE file for more info.

 

 

 

 本文由用戶 mg6247 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!