使用 UISwitch 制作动画
Posted
技术标签:
【中文标题】使用 UISwitch 制作动画【英文标题】:Animating with UISwitch 【发布时间】:2011-08-05 02:23:20 【问题描述】:我希望能够创建一个使用 UISwitch 启动的动画。我目前有这段代码可以在开关打开时隐藏一些 UI 元素:
-(IBAction)displayStartingAddress:(id)sender
NSLog(@"starting displayStartingAddress");
if (enterStartingAddress.hidden==YES)
enterStartingAddress.hidden=NO;
startingAddress.hidden=NO;
else
enterStartingAddress.hidden=YES;
startingAddress.hidden=YES;
当“enterStartingAddress”和“startingAddress”显示时,我希望开关能够使 UI 元素的动画向下移动。
我对 ios 编程和 Objective-C 非常陌生,因此我将不胜感激。谢谢。
【问题讨论】:
这个问题很不清楚,请您改写一下。 我确实这么认为。简单地说,我想在切换开关时移动一些 ui 元素。 【参考方案1】:如果您立即将界面元素设置为隐藏,则不会执行任何动画,因为它会在动画时被隐藏。您要做的是为alpha
属性设置动画。那就是对象的可见性。下面是一个动画帧和 alpha 的例子:
-(IBAction)displayStartingAddress:(id)sender
CGRect frame1 = enterStartingAddress.frame;
CGRect frame2 = startingAddress.frame;
if (enterStartingAddress.alpha==0) //not the best way to do it to be honest
frame1.origin.y += 100;
frame2.origin.y += 100;
[UIView animateWithDuration:0.5 animations:^
enterStartingAddress.alpha = 1;
startingAddress = 1;
enterStartingAddress.frame = frame1;
startingAddress.frame = frame2;
];
else
frame1.origin.y -= 100;
frame2.origin.y -= 100;
[UIView animateWithDuration:0.5 animations:^
enterStartingAddress.alpha = 0;
startingAddress = 0;
enterStartingAddress.frame = frame1;
startingAddress.frame = frame2;
];
【讨论】:
这确实不是故障安全的,因为您可能会欺骗切换到复制其中一个 if 语句,从而使您的界面对象额外向下移动 100 点。但你明白了要点。 @George:如果对您有帮助,请不要忘记将其标记为答案(单击绿色复选框)!然后它会告诉其他人您的问题已解决。以上是关于使用 UISwitch 制作动画的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollview 中的 UISwitch 几乎无法使用
静态 UITableViewCell 中的 UISwitch 生成错误