在IOS swift中删除StackLayoutView及其子视图之间的链接/约束

在IOS swift中删除StackLayoutView及其子视图之间的链接/约束,ios,swift,uistackview,Ios,Swift,Uistackview,我正在开发一款IOS游戏。真正基本和简单的游戏作为学习的目的,因为我刚刚开始学习IOS开发。我的游戏是一个简单的赛车游戏,用户将移动他或她的汽车拖动图像和其他汽车将不断从顶部产卵。当他们互相攻击时,游戏结束。正如您在下面的屏幕截图中所看到的 现在,我可以拖动汽车并检测与其他汽车的碰撞。现在的问题是我可以把我的车拖到屏幕上的任何地方。我现在要做的是将道路图像放入堆栈布局视图中,并裁剪背景图像以获得唯一的道路。然后将道路图像设置为堆栈布局视图的背景。然后将主屏幕背景设置为绿色。因此,用户只能在堆栈

我正在开发一款IOS游戏。真正基本和简单的游戏作为学习的目的,因为我刚刚开始学习IOS开发。我的游戏是一个简单的赛车游戏,用户将移动他或她的汽车拖动图像和其他汽车将不断从顶部产卵。当他们互相攻击时,游戏结束。正如您在下面的屏幕截图中所看到的

现在,我可以拖动汽车并检测与其他汽车的碰撞。现在的问题是我可以把我的车拖到屏幕上的任何地方。我现在要做的是将道路图像放入堆栈布局视图中,并裁剪背景图像以获得唯一的道路。然后将道路图像设置为堆栈布局视图的背景。然后将主屏幕背景设置为绿色。因此,用户只能在堆栈视图中移动其汽车。现在我将堆栈视图添加到主视图中。 我将堆栈视图的大小设置为与主视图设置constriant相同的大小,如下所示


当我加上这四个对比,汽车图像也变成了全屏大小。当我更改汽车图像时,堆栈视图的大小将调整为与汽车相同的大小。因此,我的问题是如何将堆栈视图用作组布局视图,而不是包装器,从而删除该大小的贡献?例如,像android中的linearlayout。

我会在这里建议不同的策略。可以将主视图设置为绿色,然后在其顶部添加另一个UIImageView(使用道路图像资源)。你的车可能是另一个图像视图,上面可能有平移手势,你可以通过编程设置一个限制,这样它就不会“离开”道路

func didPan(_ gesture: UIPanGestureRecognizer) {
    //calculating new car position
    let fingerPosition = gesture.location(in: view)
    let minPosition = roadImageView.frame.origin.x + carImageView.frame.size.width / 2
    let maxPosition = roadImageView.frame.maxX - carImageView.frame.size.width / 2
    var carCenterX = max(fingerPosition.x, minPosition)
    carCenterX = min(carCenterX, maxPosition)
    carImageView.center = CGPoint(x: carCenterX, y: fingerPosition.y)
}