如何在 IOS 中显示带有动画的自定义广告横幅图像

How to display Custom Advertisement Banner Images with Animation in IOS

我有一组图像说 10 张图像。我想在屏幕底部用动画一个接一个地显示这些图像。

好像是iAd或者ADBannerView会随动画显示随动画消失

图片来自带有 URL 链接的服务器。我需要在屏幕底部像广告一样显示它们。

我使用了下面的代码

https://github.com/alobi/ALAlertBanner

但在某些情况下它不显示图像..(当使用定时器或导航到其他屏幕并返回到此视图时)

下面是我的代码

_secondsToShow = 10;
_showAnimationDuration = 5;
_hideAnimationDuration = 5;

self.bannerTimer = [NSTimer scheduledTimerWithTimeInterval:20.0 target:self                                                  selector:@selector(showAdvertisementsInView) userInfo:nil repeats:YES];

[self.bannerTimer fire];

- (void)showAdvertisementsInView {

    appDelegateRef.imageIndex=appDelegateRef.imageIndex+1;

    ALAlertBannerPosition position = ALAlertBannerPositionBottom;
    //ALAlertBannerStyle randomStyle = (ALAlertBannerStyle)(arc4random_uniform(4));
    banner = [ALAlertBanner alertBannerForView:self.view style:ALAlertBannerStyleSuccess position:position title:nil subtitle:nil tappedBlock:^(ALAlertBanner *alertBanner) {
        NSLog(@"tapped!");
        [alertBanner hide];
    }];
    banner.secondsToShow = self.secondsToShow;
    banner.showAnimationDuration = self.showAnimationDuration;
    banner.hideAnimationDuration = self.hideAnimationDuration;
    [banner show];
}

那么,对于我的问题,除了使用 iAd 或 AdMob 或 ALAlertBanner 之外,还有其他替代解决方案吗..

提前致谢...!

将其放入您的 viewController 并通过重复的 NSTimer 触发它。

    {
    NSArray *theImageFileNames; //array of image names
    NSUInteger bannerNumber; //where we're up to
    UIImageView *banner; //was setUpInViewDidLoad or nib or whatever..
    }




    -(void ) cycleToNextBanner{

    bannerNumber ++;
    bannerNumber %= [theImageFileNames count];
    UIImageView *newBanner = [[UIImageView alloc]initWithFrame: banner.frame];
    [newBanner setImage:[UIImage imageNamed:[theImageFileNames objectAtIndex:bannerNumber]]];
    [UIView transitionFromView:banner toView:newBanner duration:0.5 options:UIViewAnimationOptionTransitionCurlUp completion:^(BOOL finished){

if (finished) banner = newBanner;`
   }];


    }

有一个名为“UIImage+Sprite”的 UIImage 扩展

你只需要给出一个带有指定矩形的精灵图像,就像下面的代码:

UIImage *spriteSheet = [UIImage imageNamed:@"bird-sprite-sheet-i5"];

NSArray *arrayWithSprites = [spriteSheet spritesWithSpriteSheetImage:spriteSheet
                                                          spriteSize:CGSizeMake(240, 314)];
[self.imageView setAnimationImages:arrayWithSprites];

您可以为 'arrayWithSprites' 分配您自己的图像数组;现在它会重复。