如何设置框的动画以进行扩展和收缩?

时间:2013-06-06 16:52:38

标签: ios objective-c core-animation easing

我阅读了Apple的核心动画介绍,搜索了所有的'ios补间','ios缓和'以及相关的东西,但令人惊讶的是空手而归。

如何在保持UILabel显示的同时制作我的UILabel合约并隐藏其子视图按钮?链接,代码,设计概述或完成任务的任何内容都将非常有用。

1 个答案:

答案 0 :(得分:0)

惊讶没有人踩到这个,答案很简单。但也许这就是原因。

我不确定UILabel本身的动画,虽然因为它是UIView的子类,我怀疑它是相当正常的。

完成此操作的最简单方法是使用UIView静态方法:

+ (void)animateWithDuration:(NSTimeInterval)duration 
                 animations:(void (^)(void))animations

就我而言,我有一个UILabel,myLabel位于UIVut myContainer之上,带有UIButton 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制作动画。