SwiftUI 的问题:带有按钮的垂直滚动视图

Posted

技术标签:

【中文标题】SwiftUI 的问题:带有按钮的垂直滚动视图【英文标题】:Problem with SwiftUI: Vertical ScrollView with Button 【发布时间】:2020-06-16 20:16:22 【问题描述】:

我对编程很陌生,所以请原谅任何愚蠢的问题。我正在尝试制作一个内容为按钮的 ScrollView。虽然按钮会打印到控制台,但当在模拟器中显示时,按钮会显示为一个大的蓝色矩形,而不是显示我想要的图像。

关于ScrollView的代码:

struct ContentView: View 
var body: some View 
   [Simulator Display][1] 



    VStack 

        Image("logo")
            .resizable()
            .aspectRatio(contentMode: .fit)
            .padding(.leading, 50)
            .padding(.trailing, 50)
            .padding(.top, 20)
            .padding(.bottom, -20)
        Spacer()

        ScrollView 
            VStack(spacing: 20) 
                Button(action: 
                    //ToDo
                    print("Executed")
                ) 
                    Image("Logo")
                
            
        





    

模拟器显示:

图像(暂时占位符)我想显示:

【问题讨论】:

能否提供图片 imgur.com/a/2j4D52o 很抱歉,由于某种原因,它不允许我将其包含在帖子中。 所以图片是蓝色方块?您可以将链接粘贴到帖子上的那个方格,而不是评论上,而只是方格,不像上面的那样 好的,我的道歉现在应该在帖子中提供。 【参考方案1】:

所以我试了一下,是的,这很奇怪。无论如何,这是一个如何包含图像的示例。只需获取 Button 的一部分并粘贴它

struct ContentView: View 
    var body: some View 
        ZStack 
            Button(action: 
              print("button pressed")

            ) 
                Image("image")
                .renderingMode(.original)
            
        
    

【讨论】:

非常感谢您的帮助。 @DevinHadley 我用更优化的方法修改了答案,看看 太棒了,看起来很棒。我现在也接受。 好的,已经有一段时间了,解决方案完美运行!只是回到这里让任何人知道导致问题的原因。我意识到 SwiftUI 会自动将按钮呈现为蓝色。通过将renderingMode设置为original,图像显示为正常状态,而不是变成蓝色。

以上是关于SwiftUI 的问题:带有按钮的垂直滚动视图的主要内容,如果未能解决你的问题,请参考以下文章

带有 TabView、SwiftUI 的水平分页滚动视图

在 SwiftUI ScrollView 中停止垂直滚动

SwiftUI 垂直 ScrollView 弹回并不显示其中的所有视图

在 SwiftUi 中水平组合和打破垂直滚动视图?

SwiftUI ScrollView 垂直和水平滚动

如何在 SwiftUI 中动态调整可垂直滚动的 VStack 中的一行中的项目数?