相关疑难解决方法(0)

ScrollView:如何处理大量内容?

这段代码是对.NET的压力测试ScrollView。虽然ForEach包含3000个项目的循环渲染速度可以接受,但是30000的时间很长,而300000的时间是永远的(我在3分钟后停止了)。

但是,在某些情况下,您需要滚动很多内容,请想象一个具有可缩放比例(十年/年/月/日)的时间轴。在这种情况下,可能需要跨越50年才能显示几天,并且用户必须有机会放大和缩小以更改比例。

因此,对我来说,问题是:SwiftUI可以采取哪些策略来优化缓存,预取等,或者找出用户滚动后下一步要显示的部分,并防止模型计算宽度?

更准确地说:模型知道所有要显示的数据。在ScrollView必须提供具有所有项显示的宽度的内容图。这个宽度是我的问题:在没有所有可用商品的情况下,如何以合理的方式确定宽度?

struct TestScrollView: View {

    var body: some View {

        ScrollView(.horizontal, showsIndicators: true, content: {

            HStack(alignment: .bottom, spacing: 1) {

// 3000 is working, 30000 not well, 300000 takes forever:
                ForEach(1 ..< 30000) { index in

                    Rectangle()
                        .fill(Color.yellow)
                        .frame(minWidth: 100, idealWidth: 200, maxWidth: 300, minHeight: 500, idealHeight: 500, maxHeight: 500, alignment: .bottom)
                }
            }
        })
    }
}
``
Run Code Online (Sandbox Code Playgroud)

swiftui

5
推荐指数
1
解决办法
222
查看次数

带有Tableview或Scrollview的iPhone UI?

我想知道在为特定屏幕构建UI时iOS开发的最佳实践是什么.由于可以为tableviews创建自定义单元格,因此您可以使用tableview来创建您可能想要的任何布局/ UI.这引出了我的问题:

通常,在iPhone应用程序上创建一个屏幕,其内容超出单个屏幕时,可以更好地使用滚动视图并将自定义视图加载到滚动视图中,或者创建一个tableview并改为使用自定义视图是自定义tableview单元格?

最后,您似乎可以获得完全相同的视觉效果,但最佳做法是什么.如果使用tableview或scrollview构建特定的可滚动屏幕,我很难告诉我已下载的应用程序.

在HTML中,您应该仅使用元素来显示表格数据,而不是用于布局和样式目的.iOS中的情况是一样的吗?将tableviews用于布局目的是不好的做法(例如,应用程序的主屏幕列出了按钮以转到应用程序的其他部分)?

提前干杯.

iphone ios4 ios ios5

3
推荐指数
1
解决办法
3365
查看次数

标签 统计

ios ×1

ios4 ×1

ios5 ×1

iphone ×1

swiftui ×1