Ios 修改约束
作为学习Swift和iOS开发的练习,我决定制作这个游戏。一开始我遇到了一个简单的问题,我找不到简单的解决办法 我从划桨开始。我创建了一个Ios 修改约束,ios,swift,autolayout,Ios,Swift,Autolayout,作为学习Swift和iOS开发的练习,我决定制作这个游戏。一开始我遇到了一个简单的问题,我找不到简单的解决办法 我从划桨开始。我创建了一个gameView,它将成为游戏的容器。我还创建了桨叶视图,并添加了将桨叶置于正确位置的约束。以下是我所拥有的: 我还添加了一个平移手势识别器,用于定位桨的center.x位置 问题是:当我改变方向时,无论改变之前的位置如何,桨叶都会移动到中心 我尝试创建中心X对齐约束的出口,在视图中删除它,并在视图中恢复以前的位置,但桨的原点X始终为0。我还尝试修改约束
gameView
,它将成为游戏的容器。我还创建了桨叶视图
,并添加了将桨叶置于正确位置的约束。以下是我所拥有的:
我还添加了一个平移手势识别器,用于定位桨的center.x
位置
问题是:当我改变方向时,无论改变之前的位置如何,桨叶都会移动到中心
我尝试创建中心X对齐约束的出口,在视图中删除它,并在视图中恢复以前的位置,但桨的原点X
始终为0。我还尝试修改约束,可能是更改了乘数
,但仍然失败
我知道有一个简单的解决办法,但我找不到
有人能帮忙吗?您不应该在平移手势处理程序中修改view center.x,因为您的约束将被打破。相反,您应该创建约束出口(比如约束:view.center.x equal superview.center.x)并在平移处理程序中更改其常量值
@IBOutlet weak var centerAlignment: NSLayoutConstraint!
@IBAction func handleDrag(sender: UIPanGestureRecognizer) {
let xPosition = sender.locationInView(self.view).x
if xPosition >= 0 && xPosition <= self.view.frame.size.width{
centerAlignment.constant = xPosition - self.view.frame.size.width / 2
} else if xPosition > self.view.frame.size.width {
centerAlignment.constant = self.view.frame.size.width / 2
} else {
centerAlignment.constant = -self.view.frame.size.width / 2
}
}
@IBOutlet弱var中心对齐:NSLayoutConstraint!
@iAction func handleDrag(发送方:UIPangestureRecognitor){
设xPosition=sender.locationInView(self.view).x
如果xPosition>=0&&xPosition self.view.frame.size.width{
centerAlignment.constant=self.view.frame.size.width/2
}否则{
centerAlignment.constant=-self.view.frame.size.width/2
}
}