UIButtons 不动
Posted
技术标签:
【中文标题】UIButtons 不动【英文标题】:UIButtons don't move 【发布时间】:2013-07-12 15:02:56 【问题描述】:我是 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
)根本不起作用(甚至没有触摸动画)。
【问题讨论】:
你确定所有的插座都连接了吗?考虑 NSLog(@"%@", self.buttonThatIsntMoving);在动画之前。 所有插座都连接了,而且我有NSLog的前后动画,他们说按钮的坐标是正确的,按钮应该在左边,但他们没有 你在使用自动布局吗?如果是这样,你应该通过改变约束而不是设置中心来做任何动画。 谢谢你的想法,现在我正在阅读自动布局,我会尽快写 代码看起来不错。只需要一些调试。将动画缩减为仅包含两个视图:一个正确移动,一个不正确移动。 NSLog 预先两个视图(这将记录它们的帧)。在动画中添加一个完成块,再次记录视图。 【参考方案1】:感谢您的帮助。
事实上,问题出在自动布局系统上。它试图保存Button
的右边缘和self.view
的右边缘之间的距离。该距离等于 0,因此按钮不想向左移动。该问题已通过删除按钮属性上的“使用自动布局”勾选来解决。
【讨论】:
如果你想使用自动布局,你可以动画你的约束而不是视图的框架。【参考方案2】:更改他们的transform
而不是更改他们的center
。这就是它的意义所在。
【讨论】:
以上是关于UIButtons 不动的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollview 事件将被包含的 UIButtons 捕获