SwiftUI为图像上的按钮覆盖找到解决方案

SwiftUI为图像上的按钮覆盖找到解决方案,swift,swiftui,Swift,Swiftui,我在图像上叠加了一个按钮/文本,但按钮没有响应。有什么解决办法吗? 似乎隐藏的导航栏视图阻止了按钮或图像阻止了触摸手势。请帮帮我。代码如下: (有人请帮帮我,学校工作的压力太大了) 在我将按钮移动到文本下方(UINavigationBarLargeTitleView未覆盖该按钮)后,该按钮工作了。即使我把按钮放在顶部,有没有办法让它工作?@Asperi的意思是,您提供了一个代码片段,它取决于我们一无所知的模型。当你发布代码时,你应该发布一个简化版本。在本例中,我使用了您的代码,并将您的数据模型

我在图像上叠加了一个按钮/文本,但按钮没有响应。有什么解决办法吗? 似乎隐藏的导航栏视图阻止了按钮或图像阻止了触摸手势。请帮帮我。代码如下: (有人请帮帮我,学校工作的压力太大了)


在我将按钮移动到文本下方(UINavigationBarLargeTitleView未覆盖该按钮)后,该按钮工作了。即使我把按钮放在顶部,有没有办法让它工作?

@Asperi的意思是,您提供了一个代码片段,它取决于我们一无所知的模型。当你发布代码时,你应该发布一个简化版本。在本例中,我使用了您的代码,并将您的数据模型替换为一个简单的数组。我还从美国宇航局的“当日图像”下载了一张图像供使用。Asperi用他的第二个问题解决了这个问题

看着它,第一件让我震惊的事情是你太努力地在SwiftUI中定位事物了。这样不行。这导致了你的问题。我拿出了你的画框,其实在这个布局中什么都没做。我还提取了具体的填充量。然后,我拉出了你的HStack中的垫片(),屏幕上出现了你的“下一步”按钮。我怀疑将图像设置为.scaledToFill()和屏幕尺寸不同的图像会导致视图比您可以看到的屏幕大。插入间隔键()会导致“下一步”按钮一直向右移动,这是在屏幕外。一旦我能看到它,我就可以点击它,它工作得很好

你有一个非常复杂的结构,可以产生一个非常简单的布局。下次,从小事做起,只添加你需要的东西。在SwiftUI中,布局越少越好,否则会导致意想不到的后果。尝试将覆盖层中的HStack更改为以下内容,然后从那里开始,一步一个脚印:

                        HStack{
                            Text("Next")
                                .foregroundColor(.blue)
                                .fontWeight(.black)
                                .onTapGesture(count:1) {
                                    
                                    if self.messageIndex != 4{
                                        self.messageIndex += 1
                                    }else{
                                        self.messageIndex = 0
                                    }
                                }
                        }

请记住,在SwiftUI中,子视图决定其自身的大小。不要试图强迫父母做任何事情。

@Asperi的意思是,您提供了一个代码片段,它依赖于我们一无所知的模型。当你发布代码时,你应该发布一个简化版本。在本例中,我使用了您的代码,并将您的数据模型替换为一个简单的数组。我还从美国宇航局的“当日图像”下载了一张图像供使用。Asperi用他的第二个问题解决了这个问题

看着它,第一件让我震惊的事情是你太努力地在SwiftUI中定位事物了。这样不行。这导致了你的问题。我拿出了你的画框,其实在这个布局中什么都没做。我还提取了具体的填充量。然后,我拉出了你的HStack中的垫片(),屏幕上出现了你的“下一步”按钮。我怀疑将图像设置为.scaledToFill()和屏幕尺寸不同的图像会导致视图比您可以看到的屏幕大。插入间隔键()会导致“下一步”按钮一直向右移动,这是在屏幕外。一旦我能看到它,我就可以点击它,它工作得很好

你有一个非常复杂的结构,可以产生一个非常简单的布局。下次,从小事做起,只添加你需要的东西。在SwiftUI中,布局越少越好,否则会导致意想不到的后果。尝试将覆盖层中的HStack更改为以下内容,然后从那里开始,一步一个脚印:

                        HStack{
                            Text("Next")
                                .foregroundColor(.blue)
                                .fontWeight(.black)
                                .onTapGesture(count:1) {
                                    
                                    if self.messageIndex != 4{
                                        self.messageIndex += 1
                                    }else{
                                        self.messageIndex = 0
                                    }
                                }
                        }

请记住,在SwiftUI中,子视图决定其自身的大小。不要试图强迫父母做事情。

由于提供的代码快照中缺少许多依赖项,很难重现您的案例。你看到屏幕上的按钮了吗?你们有并没有试着在点击动作中设置断点,看看它是否在那个里?最小可复制的示例会更有用。很抱歉造成混淆,这是我第一次问有关堆栈溢出的问题。不管怎么说,我用了一个打印语句来测试手势点击动作是否被触发,但事实并非如此。你会发现另一件事是,你不能在帖子中真正提出后续问题。答案是肯定的,作为一个导航按钮,谷歌会给你很多关于如何使用它们的例子和教程。我要说的是,您不能隐藏NavigationBar并使用NavigationBarButton。由于提供的代码快照中缺少许多依赖项,因此很难重现您的案例。你看到屏幕上的按钮了吗?你们有并没有试着在点击动作中设置断点,看看它是否在那个里?最小可复制的示例会更有用。很抱歉造成混淆,这是我第一次问有关堆栈溢出的问题。不管怎么说,我用了一个打印语句来测试手势点击动作是否被触发,但事实并非如此。你会发现另一件事是,你不能在帖子中真正提出后续问题。答案是肯定的,作为一个导航按钮,谷歌会给你很多关于如何使用它们的例子和教程。我会说,你不能隐藏导航栏并使用导航按钮。