前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >iOS18适配指南之UICalendarView

iOS18适配指南之UICalendarView

作者头像
YungFan
发布于 2025-02-10 05:28:19
发布于 2025-02-10 05:28:19
4200
代码可运行
举报
文章被收录于专栏:学海无涯学海无涯
运行总次数:0
代码可运行

介绍

  • 增加类型UICalendarSelectionWeekOfYear,表示可以从日历视图中选择一年中的某周日期。
  • selectionBehavior属性增加了支持UICalendarSelectionWeekOfYear的选项,可以按周选择日期。

案例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import UIKit

class ViewController: UIViewController {
    lazy var calendarSelectionWeekOfYear = UICalendarSelectionWeekOfYear(delegate: self)
    lazy var calendarView: UICalendarView = {
        let calendarView = UICalendarView(frame: UIScreen.main.bounds)
        calendarView.locale = Locale(identifier: "zh_Hans_CN")
        // iOS18新增,一次选择一周日期
        calendarView.selectionBehavior = calendarSelectionWeekOfYear
        // 选中一年内的某周日期
        calendarSelectionWeekOfYear.selectedWeekOfYear = DateComponents(weekOfYear: 36, yearForWeekOfYear: 2024)
        return calendarView
    }()
    // 用户选择的某周日期的第一天
    var selectedDate: DateComponents = DateComponents(weekOfYear: 36, yearForWeekOfYear: 2024) {
        didSet {
            let startDateOfSelecedWeek = Calendar.current
                .date(from: selectedDate)?
                .formatted(.dateTime.year().month().day()
                    .locale(Locale(identifier: "zh_Hans_CN")))
            print(startDateOfSelecedWeek ?? Date.now)
        }
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        view.addSubview(calendarView)
        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
            self.calendarSelectionWeekOfYear.setSelected(DateComponents(weekOfYear: 38, yearForWeekOfYear: 2024), animated: true)
        }
    }
}

// MARK: - UICalendarSelectionWeekOfYearDelegate
extension ViewController: UICalendarSelectionWeekOfYearDelegate {
    // MARK: 选择某周日期
    func week(ofYearSelection selection: UICalendarSelectionWeekOfYear, didSelectWeekOfYear weekOfYearComponents: DateComponents?) {
        guard let weekOfYearComponents = weekOfYearComponents else { return }
        selectedDate = weekOfYearComponents
    }

    // MARK: 是否能够选择某周日期
    func week(ofYearSelection selection: UICalendarSelectionWeekOfYear, canSelectWeekOfYear weekOfYearComponents: DateComponents?) -> Bool {
        return true
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-09-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
iOS18适配指南之UICalendarView
YungFan
2024/09/09
2120
iOS16适配指南之UICalendarView
介绍 UICalendarView 是 iOS 16 中新增的视图,用于显示日历并支持同时选择日历中的一个或多个日期。 只能显示年月日,无法显示时分秒,如果需要时分秒建议继续使用 UIDatePicker。 案例 // Created by YungFan import UIKit class ViewController: UIViewController { // 创建UICalendarView lazy var calendarView: UICalendarView = {
YungFan
2022/08/23
1.3K0
iOS18适配指南之UITableView
YungFan
2024/09/27
2890
iOS18适配指南之UIViewController
增加了类型为UIViewController.Transition的preferredTransition属性,可以实现特殊的转场效果,共有 5 种效果,分别为zoom、coverVertical、flipHorizontal、crossDissolve与partialCurl。
YungFan
2024/09/09
4480
iOS18适配指南之UITextView
YungFan
2024/09/09
4090
iOS18适配指南之UITabBarController
YungFan
2024/09/17
1.5K0
iOS17适配指南之UIContentUnavailableView(一)
YungFan
2023/07/24
5370
iOS17适配指南之UIContentUnavailableView(一)
iOS18适配指南之Symbol Animations
YungFan
2024/09/09
1830
iOS17适配指南之其他细节
UIView 增加了一个hoverStyle属性,可以设置鼠标移动到 UIView 之上的效果。
YungFan
2023/09/01
1K0
SwiftUI-日期显示总结
借助于DateFormatter,首先格式化成需要的日期格式,然后显示。代码如下:
YungFan
2024/04/28
4140
SwiftUI-日期显示总结
iOS开发之PHLivePhotoView
YungFan
2023/12/05
6180
iOS开发之PHLivePhotoView
iOS开发之数据格式化
iOS 15 中增加了几个formatted()方法,可以对多种数据进行格式化。 import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // 日期格式化 print(Date.now.formatted(.dateTime.year().month().day().locale(Locale(id
YungFan
2022/10/28
2720
iOS18适配指南之UITrait
系统能够自动监听并且处理特征值的改变,不再需要UITraitChangeObservable协议中的特征变化注册方法registerForTraitChanges()。
YungFan
2025/02/10
600
iOS18适配指南之PencilKit
YungFan
2024/10/08
1970
iOS18适配指南之融合SwiftUI
UIKit 进一步融合 SwiftUI,UIView 动画可以使用 SwiftUI 动画。
YungFan
2024/09/09
1990
iOS18适配指南之UITrait
系统能够自动监听并且处理特征值的改变,不再需要UITraitChangeObservable协议中的特征变化注册方法registerForTraitChanges()。
YungFan
2024/09/13
2380
iOS17适配指南之UIContentUnavailableView(二)
iOS17适配指南之UIContentUnavailableView(一)主要讲解了 UIContentUnavailableView 的基本使用与 UIContentUnavailableConfiguration 的两种配置empty()、loading()。本文将介绍另外一种配置search()以及如何使用 SwiftUI 自定义配置。
YungFan
2023/07/25
4590
iOS17适配指南之UIContentUnavailableView(二)
iOS18适配指南之UIUpdateLink
YungFan
2024/09/09
3280
iOS17适配指南之UIViewController
YungFan
2023/07/09
9130
iOS17适配指南之UIViewController
iOS17适配指南之UITrait
UITraitEnvironment 协议中的traitCollectionDidChange()方法被废弃,监听特征改变需要使用UITraitChangeObservable协议中的相应的特征变化注册方法。
YungFan
2023/11/07
9430
iOS17适配指南之UITrait
相关推荐
iOS18适配指南之UICalendarView
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验