Comments (9)
Ok, problem solved! I needed to learn how to register my subclasses here. I needed to register MyCustomColumnHeaderBackgroundClass.self with the string: JZDecorationViewKinds.columnHeaderBackground in the custom weekFlowlayout's init function.
And of course, backgroundColor property is accessible in the custom class' init() from that on.
from jzcalendarweekview.
Yes you are right, it works for you because you choose the systembackground color and it's correctly changed in dark appearance by iOS.
The problem, for me, is that I don't catch a notification to change the appearance inside the class, so I can't use custom colour for the background and also for the label.
I was using custom colours -no systemBackrgound stuff- setting two different colour set for dark and light mode. Just set your custom colours in assets and assign it to light and dark modes, then use them with the calendar - there shouldn't be any problem with that..
from jzcalendarweekview.
@gerkov77 Thank you!
I had the same problem and solved it like this. (It's probably the same way!)
class CalendarWeekView: JZBaseWeekView {
//MARK: - JZBaseWeekView Methods
override func setup() {
super.setup()
collectionView.backgroundColor = UIColor.systemBackground // to support Dark Mode
}
override func registerViewClasses() {
super.registerViewClasses()
// overwrite supplementary registers from super.registerViewClasses()
collectionView.register(SOXColumnHeader.self,
forSupplementaryViewOfKind: JZSupplementaryViewKinds.columnHeader,
withReuseIdentifier: JZSupplementaryViewKinds.columnHeader)
/* add register() for other supplementaryViews, too. See below.*/
flowLayout.register(SOXColumnHeaderBackground.self,
forDecorationViewOfKind: JZDecorationViewKinds.columnHeaderBackground)
/* add register() for other decorationViews, too. See below.*/
}
}
// Subclasses for Headers and Backgrounds
class SOXColumnHeader: JZColumnHeader {
public override init(frame: CGRect) {
super.init(frame: .zero)
backgroundColor = .clear // the corresponding background-class will get the correct color
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
class SOXColumnHeaderBackground: JZColumnHeaderBackground {
public override init(frame: CGRect) {
super.init(frame: frame)
backgroundColor = UIColor.systemBackground // uses correct color on Dark Mode
}
required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
I subclassed
- JZColumnHeader
- JZCornerHeader
- JZRowHeader
- JZAllDayHeader
and the corresponding background classes
- JZColumnHeaderBackground
- JZRowHeaderBackground
- JZAllDayHeaderBackground
- JZAllDayCorner
the same way as shown in the example above.
Best regards!
Peter
from jzcalendarweekview.
Great implementation,
but there is a problem if you change the apparence from ligth to dark while you are using the app. Have you found a solution for this issue?
from jzcalendarweekview.
Great implementation,
but there is a problem if you change the apparence from ligth to dark while you are using the app. Have you found a solution for this issue?
Well, I don't exactly understand what you mean ...
from jzcalendarweekview.
If you start the calendar app while the device is in light mode and set your custom background color and then change it in dark mode, there is no way to change the background again.
I hope is now more clear my problem
from jzcalendarweekview.
Thank you! I just works fine for me.
(I don't catch a notification to change the appearance, though.)
RPReplay_Final1618990805.MP4
from jzcalendarweekview.
Yes you are right, it works for you beacuse you choose the systembackground color and it's correctly changed in dark appearance by iOS.
The problem, for me, is that I don't catch a notification to change the appearance inside the class, so I can't use custum color for the background and also for the label.
from jzcalendarweekview.
Yes you are right, it works for you beacuse you choose the systembackground color and it's correctly changed in dark appearance by iOS.
Which color do you use and in which subclass? A different system provided one or a complete custom?
from jzcalendarweekview.
Related Issues (20)
- Can we show 7 days in column header for single day event view same like apple calendar?
- Could you please show how to use the calendar in SwiftUI? HOT 1
- The calendar opens up to midnight but it should auto scroll to the current user time
- Crash on jump-to-today HOT 1
- Project not building in Xcode 12.3 using carthage HOT 1
- Not able to get current date object
- How to add today's view background HOT 1
- while swiping left and right the text is missing in the calendar HOT 4
- cell was missing HOT 6
- Fix crash on iPad Air 3rd gen. (only !?)
- iOS15 - Events weird movement after scrolling HOT 1
- How can i display only singe event cell for number of events within a timeframe ?
- Making a comparison but use another value
- Overlapping Issue
- How to remove the Top date view HOT 1
- How Can we change the theme Color
- How can we change the date formatter HOT 1
- Not Show the time
- set different country time zone current date and time
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jzcalendarweekview.