我是iOS开发的新手,我有一个问题,我在过去两天没有解决。
问题是:
我有一个ViewController
,在视图的右边缘有一些UIButtons
。它们是使用Interface Builder制作的。
有UIView
,它位于左边缘。
开头可以看到按钮和UIView
。
此外,右侧有一个UIView
,它位于可见区之外。
我需要有一个动画作为结果,左侧视图向左移动,超出可见性,右边缘的按钮到达左边缘,右视图到达视图的中心。
我做了一个代码:
[UIView animateWithDuration:0.5 animations:^{
self.p.center = CGPointMake (self.p.center.x-260, self.p.center.y);
self.dimensionButton.center = CGPointMake (self.dimensionButton.center.x-260, self.dimensionButton.center.y);
self.speedButton.center = CGPointMake (self.speedButton.center.x-260, self.speedButton.center.y);
self.temperatureButton.center = CGPointMake (self.temperatureButton.center.x-260, self.temperatureButton.center.y);
self.volumeButton.center = CGPointMake (self.volumeButton.center.x-260, self.volumeButton.center.y);
self.weightButton.center = CGPointMake (self.weightButton.center.x-260, self.weightButton.center.y);
self.currencyButton.center = CGPointMake (self.currencyButton.center.x-260, self.currencyButton.center.y);
self.calculationScreen.center = CGPointMake(self.calculationScreen.center.x-260, self.calculationScreen.center.y);
}];
按钮不会向左移动,但两个视图都没有,我不知道为什么。
我试着像这样重制动画:
不要将按钮和视图移动到左侧,而是将self.view移动到右侧。
但我遇到了问题:右视图上的按钮(calculateScreen
)根本不起作用(甚至没有触摸动画)。
答案 0 :(得分:0)
感谢您的帮助。
事实上,问题出在Auto Layout系统中。它试图保存Button
右边缘与self.view
右边缘之间的距离。该距离等于0,因此按钮不想向左移动。通过删除按钮属性上的勾选“使用自动布局”来解决问题。
答案 1 :(得分:0)
更改他们的transform
,而不是更改他们的center
。这就是它的意思。