Swift 如何使用FSCalendar显示日期的2个不同颜色点?
初学者程序员在这里 我试图显示两个不同的颜色点,如果有一个消极的和积极的交易日期 这是我的密码。它只显示一个点Swift 如何使用FSCalendar显示日期的2个不同颜色点?,swift,realm,nspredicate,fscalendar,Swift,Realm,Nspredicate,Fscalendar,初学者程序员在这里 我试图显示两个不同的颜色点,如果有一个消极的和积极的交易日期 这是我的密码。它只显示一个点 func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int { let incomeTransaction = realm.objects(Transaction.self).filter(positiveTransactionPredicate(date:
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let incomeTransaction = realm.objects(Transaction.self).filter(positiveTransactionPredicate(date: date))
let expenseTransaction = realm.objects(Transaction.self).filter(negativeTransactionPredicate(date: date))
for _ in incomeTransaction {
return 1
}
for _ in expenseTransaction {
return 1
}
return 0
}
func calendar(_ calendar: FSCalendar, appearance: FSCalendarAppearance, eventDefaultColorsFor date: Date) -> [UIColor]? {
let incomeTransaction = realm.objects(Transaction.self).filter(positiveTransactionPredicate(date: date))
let expenseTransaction = realm.objects(Transaction.self).filter(negativeTransactionPredicate(date: date))
for _ in incomeTransaction {
return [UIColor(rgb: Constants.green)]
}
for _ in expenseTransaction {
return [UIColor(rgb: Constants.red)]
}
return nil
}
此代码显示两个点,但颜色相同:
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
let incomeTransaction = realm.objects(Transaction.self).filter(positiveTransactionPredicate(date: date))
let expenseTransaction = realm.objects(Transaction.self).filter(negativeTransactionPredicate(date: date))
for _ in incomeTransaction {
return 2
}
for _ in expenseTransaction {
return 2
}
return 0
}
如何告诉FSCalendar委托方法在日期上显示两个不同的颜色点
像这样:
谢谢。似乎
numberOfEventsForDate:(NSDate*)日期代码>已正确实现。返回1,结果是1点
返回1将显示1个点,0将显示0个点,2将显示两个点。来自示例项目
/**
* Asks the dataSource the number of event dots for a specific date.
*
* @see
* - (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventColorForDate:(NSDate *)date;
* - (NSArray *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventColorsForDate:(NSDate *)date;
*/
- (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date;
我建议看一下github回购协议的例子
objc实现如下所示
//return 2 for 2 events
cell.numberOfEvents = [self.dataSourceProxy calendar:self numberOfEventsForDate:date];
如果您总是想要两个点,而不管实际事件数是多少,只需返回2即可
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
return 2
}
下载Example.swift项目并查看FSCalendarSwiftExample.xcodeproj似乎没有numberOfEventsForDate:(NSDate*)日期代码>已正确实现。返回1,结果是1点
返回1将显示1个点,0将显示0个点,2将显示两个点。来自示例项目
/**
* Asks the dataSource the number of event dots for a specific date.
*
* @see
* - (UIColor *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventColorForDate:(NSDate *)date;
* - (NSArray *)calendar:(FSCalendar *)calendar appearance:(FSCalendarAppearance *)appearance eventColorsForDate:(NSDate *)date;
*/
- (NSInteger)calendar:(FSCalendar *)calendar numberOfEventsForDate:(NSDate *)date;
我建议看一下github回购协议的例子
objc实现如下所示
//return 2 for 2 events
cell.numberOfEvents = [self.dataSourceProxy calendar:self numberOfEventsForDate:date];
如果您总是想要两个点,而不管实际事件数是多少,只需返回2即可
func calendar(_ calendar: FSCalendar, numberOfEventsFor date: Date) -> Int {
return 2
}
下载Example.swift项目并查看FSCalendarSwiftExample.xcodeproj不清楚您在问什么或实际问题是什么。你是在问一般情况下如何显示两点,或者如何从领域或计算中读取数据,或者确切地说是什么?你能更新和澄清这个问题,并具体告诉我们问题是什么吗?@jay我已经更新了这个问题。我只想要一些示例代码,显示日期的两个不同颜色点。如果我能知道怎么做的话,我应该能弄清楚一切。谢谢。我不清楚你在问什么或者实际问题是什么。你是在问一般情况下如何显示两点,或者如何从领域或计算中读取数据,或者确切地说是什么?你能更新和澄清这个问题,并具体告诉我们问题是什么吗?@jay我已经更新了这个问题。我只想要一些示例代码,显示日期的两个不同颜色点。如果我能知道怎么做的话,我应该能弄清楚一切。谢谢。谢谢你的合作。我知道如何创建两个点。我甚至在最初的问题中提供了一个示例代码来说明如何做到这一点。我的问题不是如何创建两个点,而是如何创建两个不同颜色的点。我想你误解了-可能是因为我说的不清楚。为每个日期调用委托方法calendar(calendar:appearance:FSCalendarAppearance:EventDefaultColors for
)。如果传入的日期是日期,则返回您想要的颜色。例如,如果在1号和2号有事件,请检查传入的日期是否在dateArray1中,然后返回return[UIColor.blue]
。如果日期在dateArray2中,返回[UIColor.green]
以及数据源方法alendar(uuCalendar:NumberOfEvents for
表示圆点数感谢您的合作。我了解如何创建两个圆点。我甚至在原始问题中提供了一个示例代码。我的问题不是如何创建两个圆点,而是如何创建两个不同颜色的圆点。我想您误解了-可能是因为我所说的不清楚。委托方法日历(uCalendar:appearance:FSCalendarAppearance:EventDefaultColors为每个日期调用。如果传入的日期是一个日期,则有一个事件返回您想要的颜色。例如,如果在1号和2号有一个事件,请检查传入的日期是否在dateArray1中,并返回return[UIColor.blue]
。如果日期在dateArray2中,返回[UIColor.green]
以及数据源方法alendar(\uCalendar:NumberOfEvents for
指示点计数