首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SwiftUI等价于clipsToBounds是什么?

SwiftUI等价于clipsToBounds是什么?
EN

Stack Overflow用户
提问于 2022-04-27 11:25:08
回答 1查看 385关注 0票数 0

我在SwiftUI中有一个滚动视图,我不想剪切滚动时超出界限的内容。在UIKit中,我们可以通过为滚动视图将clipsToBounds设置为false来实现这一点。您如何在SwiftUI中做同样的事情。或者在SwiftUI中实现类似行为的最佳实践是什么?

顺便说一句,我知道我们可以使用UIViewRepresentable来映射UIKit视图,或者如果我们使用一些库(比如SwiftUI-回顾 ),我们可以获得底层的UIKit滚动视图,并将clipsToBounds设置为false。但是我想知道是否有一种本地的SwiftUI方法来实现它。

这是一些代码,可以使问题更加清楚。

代码语言:javascript
复制
struct MyScrollView: View {
    var body: some View {
        VStack(spacing: 0) {
            header
            content
        }
    }
    
    var header: some View {
        Text("Header")
            .padding()
            .frame(minHeight: 200)
    }
    
    var content: some View {
        ScrollView {
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
        }
        .frame(maxWidth: .infinity)
        .background(.orange)
    }
} 

这就是它呈现的内容,滚动视图内容是在我向上滚动时剪裁的。

我正在寻找的是这样的,我应该能够看到标题下的内容,因为我滚动。

(预先谢谢:)

EN

回答 1

Stack Overflow用户

发布于 2022-04-27 14:33:18

编辑:使用堆栈并将空标题添加到滚动视图中:

代码语言:javascript
复制
struct MyScrollView: View {
    var body: some View {
        ZStack {
            content
            VStack {
                header
                Spacer()
            }
        }
    }
    
    var header: some View {
        Text("Header")
            .padding()
            .frame(minHeight: 200)
    }
    
    var content: some View {
        ScrollView {
            Spacer()
                .frame(height:200)
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
            Text("Content").padding()
        }
        .frame(maxWidth: .infinity)
        .background(.orange)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72027895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档