ios - SwiftUI - LazyVGrid 调整大小
问题描述
我正在尝试构建一个日历小部件,但我遇到了大小问题。
大型小部件一切正常,但不幸的是,小部件在中小型小部件中无法正确调整大小。
以下是相关代码:
var body: some View {
GeometryReader { geometry in
ZStack {
//Background Image
HStack {
VStack(spacing: 5) {
HStack {
Spacer()
Text(date, formatter: monthFormatter)
.padding(.trailing, 5)
}
.padding(.bottom, 0)
LazyVGrid(columns: Array(repeating: GridItem(), count: 7), spacing: 2, content: {
ForEach(0..<calendar.veryShortStandaloneWeekdaySymbols.count, id: \.self) { d in
Text(calendar.veryShortStandaloneWeekdaySymbols[d])
.fontWeight(.semibold)
.minimumScaleFactor(0.2)
.foregroundColor(.white)
}
ForEach(days(), id: \.self) { day in
if calendar.isDate(day, equalTo: date, toGranularity: .month) {
Text("30")
.hidden()
.padding(8)
.minimumScaleFactor(0.1)
.lineLimit(1)
.background(calendar.isDateInToday(day) ? Color.black : Color.clear)
.clipShape(Circle())
.overlay(
Text(String(calendar.component(.day, from: day)))
.foregroundColor(calendar.isDateInToday(day) ? Color.white : Color.black)
.minimumScaleFactor(0.1)
.lineLimit(1)
)
} else {
Text("30")
.hidden()
.padding(5)
}
}
})
.border(Color.blue, width: 1)
}
}
.padding(5)
.frame(width: geometry.size.width, height: geometry.size.height)
}
}
}
完整代码在这里
解决方案
推荐阅读
- reactjs - 使用 Redux 存储数据填充 Material-UI 下拉列表
- python - 命令提示符显示 pip instlled to python 3.7 & python 显示默认 3.8
- excel - 日期在 Excel 中错误地转换为所需的格式 (dd/mm/yy)
- javascript - Discord.js 将特定角色添加到数组
- node.js - Discord 机器人 / webhook 的最大上传大小
- javascript - 如何映射所有 formData 整体以上传到 Firebase?
- twitter-bootstrap - 导航栏不起作用,但它是 ctrl c ctvl v 代码
- php - 具有权限的 URI 的路径必须以斜杠“/”开头或为空。DigitalOcean Spaces AWS S3 开发工具包 PHP
- pixel - FB PIXEL:ViewContent 标准事件
- angular - 打字稿:命名箭头函数的类型在 Jasmine 单元测试中为 spyOn() 引发 TS 错误