开发者社区 问答 正文

从今天起更改日历开始日期?

你好,我在这个项目中工作,我们在日历中过滤日期,直到10年后,当日历打开时,从10年开始。

我想在打开日历的时候让日历从今天开始。let group: [UIButton] = [filterOne, filterThree, filterTwo] group.forEach { item in item.backgroundColor = .primaryButtonColor item.layer.cornerRadius = 15 } dateRangePickerViewController.delegate = self dateRangePickerViewController.minimumDate = Calendar.current.date(byAdding: .year, value: -10, to: Date())

dateRangePickerViewController.maximumDate = Calendar.current.date(byAdding: .year, value: 1, to: Date())

// dateRangePickerViewController.selectedStartCell = Calendar dateRangePickerViewController.selectedStartDate = Date() dateRangePickerViewController.selectedEndDate = Calendar.current.date(byAdding: .day, value: 1, to: Date()) self.startDate = Date() self.endDate = Calendar.current.date(byAdding: .day, value: 1, to: Date()) fromValue.text = self.startDate?.toString(format: "yyyy/MM/dd") fromValue.text = self.endDate?.toString(format: "yyyy/MM/dd")

展开
收起
游客5akardh5cojhg 2019-12-03 16:49:20 501 分享 版权
阿里云 AI 助理回答

你好!根据你的描述,你希望在项目中使用日历控件时,默认显示从今天开始的日期,并且允许用户选择的日期范围是从当前日期到未来10年。基于你提供的代码片段,我注意到你已经设置了最小日期(minimumDate)为当前日期减去10年,最大日期(maximumDate)为当前日期加1年,这是正确的设置以限制日期选择范围。

为了确保日历打开时默认显示今天,你需要确保selectedStartDate被正确地设置为今天的日期。你的代码中已经有这一行,但似乎缺少了实际赋值给dateRangePickerViewController.selectedStartDate的部分。下面是修改后的代码段:

// 确保selectedStartDate设置为今天
dateRangePickerViewController.selectedStartDate = Date()

// 如果你也想默认结束日期也为今天,可以这样做
dateRangePickerViewController.selectedEndDate = Date()

// 但是根据你的代码,你似乎是想让默认的结束日期为今天加1天
dateRangePickerViewController.selectedEndDate = Calendar.current.date(byAdding: .day, value: 1, to: Date())

// 确保self.startDate和self.endDate也被正确初始化
self.startDate = Date()
self.endDate = Calendar.current.date(byAdding: .day, value: 1, to: Date())

// 更新UI上的文本显示,注意这里假设toString是一个自定义扩展方法来格式化日期
fromValue.text = self.startDate?.toString(format: "yyyy/MM/dd")
toValue.text = self.endDate?.toString(format: "yyyy/MM/dd") // 注意这里应该是toValue而不是再次赋值给fromValue

请确保你的toString(format:)方法是有效的,因为Swift标准库并没有直接提供这样的方法。你可能需要自己定义一个扩展方法来实现日期格式化,例如:

extension Date {
    func toString(format: String) -> String? {
        let dateFormatter = DateFormatter()
        dateFormatter.dateFormat = format
        return dateFormatter.string(from: self)
    }
}

这样修改后,当你的日历视图打开时,应该会默认显示今天的日期,并且用户可以选择的日期范围也符合你的需求。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答
问答地址: