iOS17下SwiftUI RatingView可选绑定参数实现及写法疑问
关于SwiftUI Rating View的可选Binding参数问题
我正在修改Stewart Lynch的Rating View,使其同时支持静态评分展示和可交互评分设置两种场景,为此需要配置以下可选属性适配不同场景:
currentRating:用于静态展示对应数量的符号maxRating:最大评分值mutableRating:绑定的可变评分值,用于展示已填充符号、剩余未填充符号,以及支持将评分设为0的划掉符号
目前我遇到的核心问题是如何让mutableRating这个绑定参数支持可选类型,尝试多种初始化写法均失败,具体疑问如下:
1. iOS 17中是否仍可实现该需求?若可以,具体如何操作?
2. 以下三种初始化参数写法有何区别?
mutableRating: Binding<Int?> mutableRating: Binding<Int>? mutableRating: (Binding<Int>)?
补充报错说明
- 使用
mutableRating: Binding<Int?>时,非交互预览会提示Missing argument for parameter 'mutableRating' in call,说明该参数并非真正可选; - 改为
mutableRating: Binding<Int>?时,初始化行出现Cannot assign value of type 'Binding<Int>' to type 'Binding<Int?>'错误,尝试self._mutableRating = mutableRating ?? nil会进一步报错Cannot assign value of type 'Binding?' to type 'Binding<Int?>'。
内容的提问来源于stack exchange,提问作者Gordon
相关产品推荐
相关产品推荐

