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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 04:32:07