Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 确定SwiftUI中的形状/视图是否覆盖现有形状/视图_Ios_Swiftui_Shapes - Fatal编程技术网

Ios 确定SwiftUI中的形状/视图是否覆盖现有形状/视图

Ios 确定SwiftUI中的形状/视图是否覆盖现有形状/视图,ios,swiftui,shapes,Ios,Swiftui,Shapes,我有一个简单的应用程序,可以在屏幕上显示一些形状,但目前用户可以屏蔽现有的形状,这是我想要避免的 首先,下面是一些简单的代码,用于为我的项目提供MVP: import SwiftUI struct ContentView: View { var body: some View { ZStack { Circle() .fill(Color.red) .frame(width: 44,

我有一个简单的应用程序,可以在屏幕上显示一些形状,但目前用户可以屏蔽现有的形状,这是我想要避免的

首先,下面是一些简单的代码,用于为我的项目提供MVP:

import SwiftUI

struct ContentView: View {
    var body: some View {
        ZStack {
            Circle()
                .fill(Color.red)
                .frame(width: 44,
                       height: 44)
                .zIndex(1.0)
            
            Circle()
                .fill(Color.blue)
                .frame(width: 55,
                       height: 55)
                .zIndex(2.0)
        }
    }
}
此图显示了上述正在运行的代码:

但是,当翻转
zIndex
时,如图所示,蓝色完全掩盖了红色


我不希望用户能够做到这一点,但我还没有在SwiftUI中找到可以确定形状是否完全覆盖的东西。

您可以尝试将每个形状表示为一个具有其自身大小和坐标(x和y)的结构。现有形状将放入阵列中。每当用户拖动该形状时,您都会更新该值,并检查其大小和坐标是否与数组中的某个形状相同(您可以在手势结束时或手势发生时执行该操作。这取决于您)。若条件满足,你们要么将静态形状移开一些k,要么以任何方式向用户显示他不能在那个地方放置形状