WeeklyCalendar
WeeklyCalendar is an week display calendar view in SwiftUI emulating iPhone's Calendar app UI.
![light mode git](https://private-user-images.githubusercontent.com/77086210/284447164-af24f842-da0e-41cd-9da5-9ec3eab4d5dd.gif?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDA5NzI4NDIsIm5iZiI6MTcwMDk3MjU0MiwicGF0aCI6Ii83NzA4NjIxMC8yODQ0NDcxNjQtYWYyNGY4NDItZGEwZS00MWNkLTlkYTUtOWVjM2VhYjRkNWRkLmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzExMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMTI2VDA0MjIyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJlNjhlM2IzZjNiYTg1ZmUwYWQ5NzhhNWViNmEyMmUwMjU4YTNkMDMzNmE4NTE5ZjU0ZjA3NGYyMzMwMDBlM2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.GdC56LwhLP1f5mfdTW6-_xruEbqqzHgclC_WGNSP_wc)
Color type
![light mode](https://private-user-images.githubusercontent.com/77086210/284446018-8a9aca0d-2dab-4946-9af8-19d2dbbb1108.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDA5NzI4NDIsIm5iZiI6MTcwMDk3MjU0MiwicGF0aCI6Ii83NzA4NjIxMC8yODQ0NDYwMTgtOGE5YWNhMGQtMmRhYi00OTQ2LTlhZjgtMTlkMmRiYmIxMTA4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzExMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMTI2VDA0MjIyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNhOTA3MmU5MGZkMGQ3ZTVmMTk0OTllMzg5M2NiOWNlODE2ZDdkOWE0ZjYwNmQ3NTQzYmQzMjk1ZWJiZTE3YWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.catIMHyHrBWyhJlb-5w_ZFqJfY3UKax2jbUCaBaHT_g)
![dark mode](https://private-user-images.githubusercontent.com/77086210/284446053-8eba7166-473b-49b5-84e0-d2633781b905.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTEiLCJleHAiOjE3MDA5NzI4NDIsIm5iZiI6MTcwMDk3MjU0MiwicGF0aCI6Ii83NzA4NjIxMC8yODQ0NDYwNTMtOGViYTcxNjYtNDczYi00OWI1LTg0ZTAtZDI2MzM3ODFiOTA1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFJV05KWUFYNENTVkVINTNBJTJGMjAyMzExMjYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjMxMTI2VDA0MjIyMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkMDdkNjE2MGI3Zjk0MTVkODZiMmE5ODczYWE2OGNjMTAzM2I3OTRkMGNlODllYzdiNDlkYTlmMmQyYmM4YTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Vbj_wDMoAxDNPZeU0s9aiZaAaCq0B82SpXAXwgxiGms)
Installation
Swift Package Manager
Package
You can add this package to Package.swift
, include it in your target dependencies.
let package = Package(
dependencies: [
.package(url: "https://github.com/mlballack/WeeklyCalendar", .upToNextMajor(from: "0.1.0")),
],
targets: [
.target(
name: "<your-target-name>",
dependencies: ["WeeklyCalendar"]),
]
)
Xcode
You can add this package on Xcode. See documentation.
How to use
You can just import WeeklyCalendar
to use it.
import SwiftUI
import WeeklyCalendar
import WeeklyCalendar
struct ContentView: View {
@State var selectedDate: Date = .now
<span class="pl-k">var</span> body: <span class="pl-k">some</span> View {
VStack {
<span class="pl-c1">WeeklyCalendar</span>()
.<span class="pl-c1">setColorTheme</span>(.<span class="pl-smi">dark</span>)
.<span class="pl-smi">onChangeDate</span> { selected <span class="pl-k">in</span>
selectedDate <span class="pl-k">=</span> selected
}
<span class="pl-c"><span class="pl-c">//</span> Any View</span>
}
}
}
and if you want to choose your own colors, you can customize it as follows
WeeklyCalendar()
.setColorTheme(.custom(
bgColor: <#T##Color#>,
weekdayTextColor: <#T##Color#>,
weekendTextColor: <#T##Color#>,
todayTextColor: <#T##Color#>,
selectedTextColor: <#T##Color#>,
selectedCircleColor: <#T##Color#>,
todaySelectedCircleColor: <#T##Color#>,
dateTextColor: <#T##Color#>
))
Requirements
- iOS 16.0+
- Xcode 14.0+
Contribution
I would be happy if you contribute !!
License
This project is licensed under the MIT License - see the License file for details