在我的应用程序中,我想要一些像iOS日历应用程序,所以我使用的是MBCalanderKit库。在我的应用程序中,我不想使用CKCalendarViewController,因为我需要添加日历作为子视图。
为此,我使用了以下代码。我正在使用带有swift 2.3的xCode 7
import MBCalendarKit
class ViewController: UIViewController {
var calanderView : CKCalendarView!
var data = [NSDate : AnyObject]()
override func viewDidLoad() {
super.viewDidLoad()
loadData()
calanderView = CKCalendarView(frame: self.view.frame)
calanderView.autoresizingMask = [.FlexibleWidth,.FlexibleHeight]
calanderView.delegate = self
calanderView.dataSource = self
self.view.addSubview(calanderView)
}
func loadData(){
let date = NSDate(day: 12, month: 12, year: 2016)
let event1 = CKCalendarEvent(title: "Birthday Event", andDate: date, andInfo: nil, andColor: UIColor.redColor())
let date2 = NSDate(day: 15, month: 12, year: 2016)
let event2 = CKCalendarEvent(title: "Party Event", andDate: date2, andInfo: nil, andColor: UIColor.redColor())
let date3 = NSDate(day: 17, month: 12, year: 2016)
let event3 = CKCalendarEvent(title: "Marriage Event", andDate: date3, andInfo: nil, andColor: UIColor.redColor())
let date4 = NSDate(day: 20, month: 12, year: 2016)
let event4 = CKCalendarEvent(title: "Splecal Event", andDate: date4, andInfo: nil, andColor: UIColor.redColor())
let date5 = NSDate(day: 25, month: 12, year: 2016)
let event5 = CKCalendarEvent(title: "Special Event", andDate: date5, andInfo: nil, andColor: UIColor.redColor())
data[date] = [event1]
data[date2] = [event2]
data[date3] = [event3]
data[date4] = [event4]
data[date5] = [event5]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
extension ViewController : CKCalendarViewDataSource{
func calendarView(calendarView: CKCalendarView!, eventsForDate date: NSDate!) -> [AnyObject]! {
if let dt = date{
if data[dt] != nil{
return [self.data[dt]!]
}
}
return nil
}
}
extension ViewController : CKCalendarViewDelegate{
}但我的问题是,当我运行这段代码时,我没有得到所需的输出。这是我的屏幕截图

请帮帮我。
发布于 2017-01-13 12:51:34
我也遇到过同样的问题,只是将视图控制器嵌入到导航控制器中,并在视图控制器视图的顶部添加UIView,为UIView提供一个出口
@IBOutlet var yourAddedView: UIView!
var日历= CKCalendarView()
重写函数viewDidLoad() {
super.viewDidLoad()
calendar?.dataSource = self
calendar?.delegate = selfSelf.yourAddedView.addSubview(日历!)
}
发布于 2017-08-20 20:31:17
你做的一切都是对的。直到最近,MBCalendarKit在自动布局方面的表现都不是很好。这是我的一个错误,但它已经在版本5中修复了。你应该能够在最新版本的MBCalendarKit中运行它。
如果你仍然需要这个,并且想要尝试一下,你可以使用类似下面的代码:
func presentCalendar()
{
let calendarVC = CalendarViewController()
calendarVC.dataSource = self
calendarVC.delegate = self
self.present(calendarVC, animated:true, completion: nil)
}一些注意事项:
CKCalendarView变成了CalendarView,CKCalenderEvent变成了CalendarEvent,等等)CalendarView获得表视图--你需要使用CalendarViewController。MBCalendarKit.的作者
https://stackoverflow.com/questions/41263954
复制相似问题