动画菜单像愤怒的小鸟或微型翼

2020年11月28日 60点热度 0条评论 来源: MacN00b

我不知道如何来滚动菜单添加到我的应用程序像小翅膀或愤怒的小鸟。在小翅膀上,背景从右向左移动,我想知道他们是如何实现这一点的。提前致谢。动画菜单像愤怒的小鸟或微型翼

解决方案如下:

不熟悉或者应用程序(是的,游戏Ludite),但如果你做一个视图比屏幕宽,你可以移动它的位置/中央/帧/变换/等。让它移动,你也可以动画这个动作。

,如果你做第一个320分(我们衡量点,不是像素)的视图等于最后一个320点的宽度,你可以当它到达终点跳的视图位置,并继续下去,直到永远。


编辑(例如代码):

- (void)animateBannerLocation { 
    UIView *view = _bannerView; // _bannerView.frame = CGRectMake(0,0,1000 ish,40); 
    CGRect startRect = view.frame; 
    CGRect destinationRect = view.frame; 
    // assuming superview is width of screen 
    destinationRect.origin.x = CGRectGetWidth(view.frame) - CGRectGetWidth(view.superview.frame); 
    [UIView animateWithDuration:6.0 // time in seconds 
        animations:^(void) { 
        view.frame = destinationRect; 
        } completion:^(BOOL finished) { 
        /** if you want it to scroll forever: 
        view.frame = startRect; 
        [self animateBannerLocation]; 
         **/ 
        }]; 
} 

未测试


编辑#2 也未测试

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UIImageView *_bannerView; /// - an ivar 
    // not the best way to load an image you only use in one place: 
    UIImage *image = [UIImage imageNamed:@"SomeBigBannerImage1000x40ish.png"]; 
    _bannerView = [[UIImageView alloc] initWithImage:image]; 
    [self.view addSubview:_bannerView]; 
} 

编辑#3

发表您的代码。您应该注意编译器警告。

- (void)animateBannerLocation { 
    UIView *view = _bannerView; // _bannerView.frame = CGRectMake(0,0,1000 ish,40); 
    CGRect startRect = view.frame; 
    CGRect destinationRect = view.frame; 
    // assuming superview is width of screen 
    destinationRect.origin.x = - (CGRectGetWidth(view.frame) - CGRectGetWidth(view.superview.frame)); 
    [UIView animateWithDuration:6.0 
         delay:0.0 
         options:UIViewAnimationOptionCurveLinear 
        animations:^(void) { 
        view.frame = destinationRect; 
        } completion:^(BOOL finished) { 
        view.frame = startRect; 
        if (stopAnimation == NO) 
         [self animateBannerLocation]; 
        }]; 

} 


- (void)viewDidAppear:(BOOL)animated { 
    [super viewDidAppear:animated]; 
    [self animateBannerLocation]; 
} 
    原文作者:MacN00b
    原文地址: https://stackoverflow.com/q/6780824
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。