Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 21 additions & 4 deletions MDatePickerView/ColDateCell.swift
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,30 @@

import UIKit



class ColMonthCell: ColCell {

let month = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]
let month = [
MDateConverter.getMonthName(monthNumber: 1),
MDateConverter.getMonthName(monthNumber: 2),
MDateConverter.getMonthName(monthNumber: 3),
MDateConverter.getMonthName(monthNumber: 4),
MDateConverter.getMonthName(monthNumber: 5),
MDateConverter.getMonthName(monthNumber: 6),
MDateConverter.getMonthName(monthNumber: 7),
MDateConverter.getMonthName(monthNumber: 8),
MDateConverter.getMonthName(monthNumber: 9),
MDateConverter.getMonthName(monthNumber: 10),
MDateConverter.getMonthName(monthNumber: 11),
MDateConverter.getMonthName(monthNumber: 12)]
var value = 0



override func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
return 12

return month.count
}

override func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
Expand Down Expand Up @@ -54,7 +70,7 @@ class ColMonthCell: ColCell {
class ColDayCell: ColCell {

var day = 0
let week = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
let week = MDateConverter.getDayNames()

override var Selected: [Int] {
didSet{
Expand Down Expand Up @@ -108,7 +124,8 @@ class ColDayCell: ColCell {

override func layoutSubviews() {
super.layoutSubviews()
Col.scrollToItem(at: [0,(Selected[2]) - 1], at: .centeredHorizontally, animated: true)

Col.scrollToItem(at: [0,Selected[2] - 1], at: .centeredHorizontally, animated: true)
}

override func selectDate(_ T : Int) {
Expand Down
49 changes: 49 additions & 0 deletions MDatePickerView/MDateConverter.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
//
// MDateConverter.swift
// MDatePickerView
//
// Created by Carlos Mellado on 28/1/22.
// Copyright © 2022 Matt. All rights reserved.
//

import Foundation

extension Date {

func matchesComponentDay(_ componentDay: Int) -> Bool {

let dateDay = Calendar.current.component(.day, from: self)

return dateDay == componentDay
}
}

enum MDateConverter {

static func getMonthName(monthNumber : Int) -> String {

var dateComponents = DateComponents()
dateComponents.month = monthNumber
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MMM"
let date = Calendar.current.date(from: dateComponents)!
let string = dateFormatter.string(from: date)

return string.replacingOccurrences(of: ".", with: "").capitalized
}

static func getDayNames() -> [String] {

return NSCalendar.current.weekdaySymbols
}

static func rearrange<T>(array: Array<T>, fromIndex: Int, toIndex: Int) -> Array<T>{

var arr = array

let element = arr.remove(at: fromIndex)
arr.insert(element, at: toIndex)

return arr
}
}
17 changes: 12 additions & 5 deletions MDatePickerView/MDatePickerView.swift
Original file line number Diff line number Diff line change
Expand Up @@ -159,12 +159,19 @@ extension MDatePickerView : ColCellDelegate {
Y = year
}

let dateComponents = DateComponents(calendar: Calendar.current, year: Y, month: M, day: D)
if let date = dateComponents.date {
delegate?.mdatePickerView(selectDate: date)
var dateComponents = DateComponents(calendar: Calendar.current, year: Y, month: M, day: D)

var theDate = dateComponents.date!

while(!theDate.matchesComponentDay(dateComponents.day!)) {

D = dateComponents.day! - 1
dateComponents = DateComponents(calendar: dateComponents.calendar, year: Y, month: M, day: D)
theDate = dateComponents.date!
}

scrollToitem()
delegate?.mdatePickerView(selectDate: theDate)

scrollToitem()
}

}
4 changes: 4 additions & 0 deletions MDatePickerViewDemo.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
objects = {

/* Begin PBXBuildFile section */
2FB73C0527A406180004C006 /* MDateConverter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FB73C0427A406180004C006 /* MDateConverter.swift */; };
AE2F928B23D28AAB0039D22D /* CustomDatePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2F928A23D28AAB0039D22D /* CustomDatePickerView.swift */; };
AE2F928D23D28D8A0039D22D /* TextLabel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE2F928C23D28D8A0039D22D /* TextLabel.swift */; };
AE6ED1A023D288CC00E32FB8 /* ColCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AE6ED19E23D288CC00E32FB8 /* ColCell.swift */; };
Expand Down Expand Up @@ -49,6 +50,7 @@
/* End PBXCopyFilesBuildPhase section */

/* Begin PBXFileReference section */
2FB73C0427A406180004C006 /* MDateConverter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MDateConverter.swift; sourceTree = "<group>"; };
AE2F928A23D28AAB0039D22D /* CustomDatePickerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomDatePickerView.swift; sourceTree = "<group>"; };
AE2F928C23D28D8A0039D22D /* TextLabel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TextLabel.swift; sourceTree = "<group>"; };
AE6ED19E23D288CC00E32FB8 /* ColCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ColCell.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -135,6 +137,7 @@
C95B53A523CC162E00C05C24 /* MDatePickerView.h */,
C95B53A623CC162E00C05C24 /* Info.plist */,
C95B53B223CC170A00C05C24 /* MDatePickerView.swift */,
2FB73C0427A406180004C006 /* MDateConverter.swift */,
C95B53B123CC170A00C05C24 /* ColDateCell.swift */,
AE2F928A23D28AAB0039D22D /* CustomDatePickerView.swift */,
AE6ED19D23D288CC00E32FB8 /* Utils */,
Expand Down Expand Up @@ -267,6 +270,7 @@
files = (
C95B53CF23CC199900C05C24 /* ColDateCell.swift in Sources */,
AE6ED1A023D288CC00E32FB8 /* ColCell.swift in Sources */,
2FB73C0527A406180004C006 /* MDateConverter.swift in Sources */,
AE2F928B23D28AAB0039D22D /* CustomDatePickerView.swift in Sources */,
AE2F928D23D28D8A0039D22D /* TextLabel.swift in Sources */,
C95B53CE23CC199900C05C24 /* MDatePickerView.swift in Sources */,
Expand Down
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>MDatePickerView.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>1</integer>
</dict>
<key>MDatePickerViewDemo.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>
2 changes: 0 additions & 2 deletions MDatePickerViewDemo/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {



func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
Expand Down