当前位置: 首页 > news >正文

网站 制作 技术过时网站建设客户需要提供什么

网站 制作 技术过时,网站建设客户需要提供什么,导视设计师,贵阳专业网站建设我正在尝试实现一个 View ,该 View 可以在内容数组的大小发生变化时更改显示项目的数量(由 ForEach 循环创建),就像购物应用程序可能会在用户下拉刷新后更改其可用项目的数量一样 这是我到目前为止尝试过的一些代码。如果我没记错的话,这些适…

我正在尝试实现一个 View ,该 View 可以在内容数组的大小发生变化时更改显示项目的数量(由 ForEach 循环创建),就像购物应用程序可能会在用户下拉刷新后更改其可用项目的数量一样

这是我到目前为止尝试过的一些代码。如果我没记错的话,这些适用于 Xcode beta 4,但适用于 beta 5:

  • 如果数组的大小增加,循环仍将显示原始数量的元素
  • 数组的大小减小会导致索引超出范围错误

代码:

import SwiftUIstruct test : View {@State var array:[String] = []@State var label = "not pressed"var body: some View {VStack{Text(label).onTapGesture {self.array.append("ForEach refreshed")self.label = "pressed"}ForEach(0..<array.count){number inText(self.array[number])}}
}
}#if DEBUG
struct test_Previews: PreviewProvider {static var previews: some View {test()}
}
#endif

一般来说,我是 SwiftUI 和 GUI 编程的新手,感觉每个内容都是在启动时定义的,之后很难进行更改(例如:在用户导航离开然后返回后重置 View ) .非常感谢循环问题的解决方案或使 View 更具动态性的任何提示!

最佳答案

Beta 5 发行说明说:

The retroactive conformance of Int to the Identifiable protocol is removed. Change any code that relies on this conformance to pass .self to the id parameter of the relevant initializer. Constant ranges of Int continue to be accepted:

List(0..<5) {Text("Rooms")
}

However, you shouldn’t pass a range that changes at runtime. If you use a variable that changes at runtime to define the range, the list displays views according to the initial range and ignores any subsequent updates to the range.

您应该更改 ForEach 以接收一个数组,而不是范围。理想情况下是 Identifiable 数组,以避免使用 \.self。但根据您的目标,这仍然有效:

import SwiftUIstruct ContentView : View {@State var array:[String] = []@State var label = "not pressed"var body: some View {VStack{Text(label).onTapGesture {self.array.append("ForEach refreshed")self.label = "pressed"}ForEach(array, id: \.self) { item inText(item)}}}
}

或者按照rob mayoff的建议,如果您需要索引:

struct ContentView : View {@State var array:[String] = []@State var label = "not pressed"var body: some View {VStack{Text(label).onTapGesture {self.array.append("ForEach refreshed")self.label = "pressed"}ForEach(array.indices, id: \.self) { index inText(self.array[index])}}}
}

关于swift - 如何在数组大小更改后刷新 ForEach 显示元素的数量(SwiftUI、Xcode 11 Beta 5),我们在Stack Overflow上找到一个类似的问题: swift - How to refresh number of ForEach's displaying elements after array's size changes (SwiftUI, Xcode 11 Beta 5) - Stack Overflow

 

具有非恒定范围视图刷新的Swift ForEach

swift view swiftui-foreach

我知道这是一个简单的问题,但我还没有找到答案。我想了解基本概念。

我试图用非常量范围更新ForEach,closing参数是分配给按钮的变量。

变量被赋予@状态,因此应该刷新视图。不知怎么的,它不起作用了。

import SwiftUIstruct ContentView: View {@State private var numberOfTimes = 5let timesPicker = [2,5,10,12,20]@State private var tableToPractice = 2enum answerState {case unansweredcase wrongcase right}func listRange(){}var body: some View {NavigationView{HStack{VStack{Form{Section {Picker("Tip percentage", selection: $numberOfTimes) {ForEach(timesPicker, id: \.self) {Text($0, format: .number)}}.pickerStyle(.segmented)} header: {Text("How many times do you want to practice?")}Section{Stepper("Table to practice: \(tableToPractice.formatted())", value: $tableToPractice, in: 2...16 )}Button("Start Now", action: listRange).buttonStyle(.bordered)List{ForEach(0..<numberOfTimes){Text("Dynamic row \($0)")}}}.foregroundColor(.gray)}}}}
}struct ContentView_Previews: PreviewProvider {static var previews: some View {ContentView()}
}

 发布于 1 年前

✅ 最佳回答:

avatar

问题是没有确定范围。让我们排几行

    struct Row: Identifiable {let id = UUID()}

然后设置一组可识别的项目

    @State private var numberOfTimes = 5@State private var rows = Array(repeating: Row(), count: 5)

现在,您可以获得响应列表

    List{ForEach(rows) { row inText("Dynamic row")}}

调用更改时更新以重新创建阵列

    .onChange(of: numberOfTimes) { newValue inrows = Array(repeating: Row(), count: newValue)numberOfTimes = newValue}

应在表单上调用onChange。

当您能够更好地查看模型数据时,这将更有意义,有关更深入的示例,请参阅apple文档。

这是针对lazy v stack的,但我考虑的是数据模型设置

https://developer.apple.com/documentation/swiftui/grouping-data-with-lazy-stack-views

最终解决办法:将FOREACH的列表改为@Published属性即可。

http://www.yayakq.cn/news/979085/

相关文章:

  • 做景观要用的植物网站wordpress哪种主题好
  • 石家庄建站优化公司长春火车站最新防疫要求
  • 广州做企业网站找哪家公司好泰安企业网站建设公司
  • 浏览器网站建设的步骤过程天眼查河南建设网站公司
  • 吴忠网站建设公司西宁建设局官方网站
  • 网站开发app开发主营业务温州seo公司
  • 人才网站开发网站开发能赚多少钱
  • 建设校园网站的背景及意义青州专业网站建设
  • 交通运输局网站建设方案怎么制作图片加文字
  • 网站 用户体验 考虑wordpress已经上传图片加水印
  • 做网站颜色类型是啥网站如何做谷歌优化
  • 美文网站源码哪些人需要建网站
  • 网站建设落地页wordpress百度时时推送
  • wordpress简约下载站模板html模板网站
  • 站外seo推广手机微信打开文件是乱码
  • 衡阳网站排名优化费用做百度药材种苗网站
  • 建网站服务器是什么东西阿里巴巴手工活加工平台
  • 江西中企动力做的网站湖南企业seo优化报价
  • 网站图片类型苏州做网站的哪个公司比较好
  • wordpress 站点标题亿度网络网站建设
  • 做lt行业的人让我登网站网站制作主题
  • html网站建设实例教程有什么做礼品的卖家网站
  • 专门 做鞋子团购的网站有哪些商城网站开发方案
  • 福州网络营销网站广州白云会议中心分析
  • 网站开发工程师需要什么证书wordpress如何更域名
  • 免费网站空间有哪些网站开发维护
  • 行业门户网站是什么网站报价明细
  • 图片网站怎样选择虚拟主机南宁建设网站培训
  • 关于电子商务的网站推广方案上海相亲网
  • 四川住房与城乡建设厅网站seo职位描述