【问题标题】:How do you animate the layout of the UI elements in a custom view of an iOS app?如何在 iOS 应用的自定义视图中为 UI 元素的布局设置动画?
【发布时间】:2010-07-26 15:36:54
【问题描述】:
我想在我的 iOS 应用程序中构建一个偏好设置屏幕,该屏幕顶部有一个分段控件,它会根据其状态确定哪些滑块和开关是可见的,以及它们的位置。当您更改分段控件的状态并且屏幕布局发生更改时,我希望它能够平滑地动画到新布局中。这种行为的一个例子可以在你的 iOS 设备的the wireless settings 中看到,当你点击各种分段控件时,你可以看到布局动画。
- 我了解如何隐藏和重新定位控件,但如何为其设置动画?我习惯于为“willAnimate”参数指定“YES”,但这些隐藏和重新定位函数不包含它。
- 在界面生成器中,我应该如何在一个视图中创建多个控件布局?我是否只是将控件置于彼此之上?
非常感谢您的所有帮助!
【问题讨论】:
标签:
iphone
cocoa-touch
ipad
uikit
【解决方案1】:
1) 像这样:
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:1]; //1 sec duration
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(myTransitionDidStop:finished:context:)];
//what you want to animate goes here.....
[UIView commitAnimations];
另外,myTransitionDidStop:finished:context: 是动画完成后执行的回调方法。它应该是可选的。
2) 是的,只需隐藏所有元素。在运行时确定要显示哪些。