You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中FSCalendar周视图点击带数据日期自动展开为月视图问题求助

FSCalendar固定为周视图的解决方法
  • 第一步:关闭视图切换权限
    实现FSCalendarDelegate中的shouldChangeScope代理方法,直接返回false,禁止日历在周视图和月视图之间切换:
func calendar(_ calendar: FSCalendar, shouldChange scope: FSCalendarScope) -> Bool {
    return false
}

同时关闭触发视图切换的手势,避免滑动或者点击触发切换:

// 初始化时直接配置
calendar.scope = .week // 默认固定为周视图
calendar.isScopeGestureEnabled = false // 禁用切换视图的手势
  • 第二步:固定日历高度,删除自动调整高度的逻辑
    删掉你之前写的boundingRectWillChange代理方法里的动态改高度的代码,直接给FSCalendar添加固定高度约束,周视图的推荐固定高度为80~90pt,根据你的UI需求调整即可,不要让高度随视图切换变化:
// 示例:用SnapKit添加固定高度约束
calendar.snp.makeConstraints { make in
    make.top.left.right.equalToSuperview()
    make.height.equalTo(85) // 固定周视图高度
}

如果是用Storyboard/Xib,直接给日历控件添加高度约束写死数值即可。

  • 第三步:额外检查项
    如果配置完还是会切换到月视图,检查是否有其他代码在点击日期的回调didSelect date中手动修改了calendar.scope属性,删掉对应修改scope的代码即可。

内容的提问来源于stack exchange,提问作者Karl Mcgeough

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.08 17:27:04