如何在 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' 分配您自己的图像数组;现在它会重复。
我有一组图像说 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' 分配您自己的图像数组;现在它会重复。