我阅读了 Apple 的核心动画介绍,到处搜索“ios tweening”、“ios easing”和相关的内容,但令人惊讶的是空手而归。
如何制作我的 UILabel 合同并隐藏其子视图按钮,同时保持 UILabel 显示?链接、代码、设计概述或任何可以完成此操作的东西都将非常有帮助。
我阅读了 Apple 的核心动画介绍,到处搜索“ios tweening”、“ios easing”和相关的内容,但令人惊讶的是空手而归。
如何制作我的 UILabel 合同并隐藏其子视图按钮,同时保持 UILabel 显示?链接、代码、设计概述或任何可以完成此操作的东西都将非常有帮助。
惊讶没有人走到这一步,答案很简单。但也许这就是原因。
我不确定是否要为 UILabel 本身设置动画,但由于它是 UIView 的子类,我怀疑它会相当正常。
完成此操作的最简单方法是使用 UIView 静态方法:
+ (void)animateWithDuration:(NSTimeInterval)duration
animations:(void (^)(void))animations
就我而言,我有一个 UILabel,位于带有 UIButtonmyLabel
的 UIView 之上。假设我想在单击时卷起,我会将我的按钮拖动到正确的位置并在方法中写入:myContainer
dismissButton
dismissButton
myContainer
dismissButton
viewController.m
-(IBAction)
-(IBAction)dismissButtonPressed:(id)sender
{
[UIView animateWithDuration:1.0
animations:^{
[self.myContainer.frame = CGRectMake(0,0,frame.bounds.size.width,20)];
[self.dismissButton removeFromSuperView]; }];
}
注意:这是我有限的记忆,所以指出任何错误。
注意2:如果您使用它来帮助自己,请注意那些分号、括号和大括号
现在,大多数阅读这篇文章以供参考的人可能想要更多的功能,而不是单击一个可以永久滚动视图的按钮。还有更详细的 animateWith* 方法。
有
+(void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
它允许在视图完成动画后完成一个完成块。来自 Paul Hegarty 的 iOS 类的注释:您可以从完成块中调用更多的动画方法。
还有另一种动画方法可以让我们指定动画选项。
+ (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion
选项包括:
enum {
UIViewAnimationOptionLayoutSubviews = 1 << 0,
UIViewAnimationOptionAllowUserInteraction = 1 << 1,
UIViewAnimationOptionBeginFromCurrentState = 1 << 2,
UIViewAnimationOptionRepeat = 1 << 3,
UIViewAnimationOptionAutoreverse = 1 << 4,
UIViewAnimationOptionOverrideInheritedDuration = 1 << 5,
UIViewAnimationOptionOverrideInheritedCurve = 1 << 6,
UIViewAnimationOptionAllowAnimatedContent = 1 << 7,
UIViewAnimationOptionShowHideTransitionViews = 1 << 8,
UIViewAnimationOptionCurveEaseInOut = 0 << 16,
UIViewAnimationOptionCurveEaseIn = 1 << 16,
UIViewAnimationOptionCurveEaseOut = 2 << 16,
UIViewAnimationOptionCurveLinear = 3 << 16,
UIViewAnimationOptionTransitionNone = 0 << 20,
UIViewAnimationOptionTransitionFlipFromLeft = 1 << 20,
UIViewAnimationOptionTransitionFlipFromRight = 2 << 20,
UIViewAnimationOptionTransitionCurlUp = 3 << 20,
UIViewAnimationOptionTransitionCurlDown = 4 << 20,
UIViewAnimationOptionTransitionCrossDissolve = 5 << 20,
UIViewAnimationOptionTransitionFlipFromTop = 6 << 20,
UIViewAnimationOptionTransitionFlipFromBottom = 7 << 20,
};
typedef NSUInteger UIViewAnimationOptions;
希望有人可以从这个冗长的 UIView 动画介绍中受益。