努力使我的应用程序在iPhone 5和较小的iPhone之前工作.很高兴要求iOS6并使用Autolayout因为它很好用.
但是,应用程序有4个按钮,可以定期交换位置,因此我为每个按钮分配一个与数组不同的位置,然后使用以下内容为动画设置动画:
[UIView animateWithDuration:0.5 animations:^{ button1.center = [[locations objectAtIndex:0] CGPointValue]; button2.center = [[locations objectAtIndex:1] CGPointValue]; button3.center = [[locations objectAtIndex:2] CGPointValue]; button4.center = [[locations objectAtIndex:3] CGPointValue]; }];
这不适用于Autolayout.没有什么变化.我得到的最好的是它会动画到一个位置,然后立即回弹.
当我删除Autolayout但是所有的按钮都在较小的iPhone上被碾碎,并且由于我使用的是iPhone 5尺寸设置的点,它们最终会降低,将底部行放在屏幕上.我原来有来自Interface Builder的不同的CGPoint数字,但它们是“错误的”,虽然我认为它们是“错误的”,因为它们是Autolayout使用的数字.数组就这样你可以看到:
buttonLocations = [NSArray arrayWithObjects: [NSValue valueWithCGPoint:CGPointMake(57,523)],[NSValue valueWithCGPoint:CGPointMake(109,[NSValue valueWithCGPoint:CGPointMake(57,471)],nil];
我该怎么做才能解决这个问题?为每个尺寸的设备设置不同的点似乎不是很有效.