在iPhone中显示少量自定义广告横幅

时间:2012-07-05 07:27:46

标签: objective-c ios ios5 ios4

我的应用底部有一个区域,显示来自xml Feed的自定义横幅图片,如下所示:

<sponsor><image>image1.jpg</image></sponsor>
<sponsor><image>image2.jpg</image></sponsor>
<sponsor><image></image></sponsor>//image node is empty
<sponsor><image></image></sponsor>//image node is empty
<sponsor><image>image3.jpg</image></sponsor>
<sponsor><image>image4.jpg</image></sponsor>

我将这些图像解析为数组并随时间更改横幅广告,并应重复相同的循环。

现在我在显示区域显示这些图像,当<image>节点中没有内容时,该区域变为空白。我需要的是跳过空的<image>节点并用图像显示节点的内容。

我正在使用以下代码:

我有一个横幅对象:

bannerObj.m

@implementation bannerObj

@synthesize url,index;

@end

我的HomepageViewController.m中的这个方法存储数组如下:

- (void)processCompleted{

NSMutableArray *bannerArray=[[self sponsorrssParser]sponsorrssItems];
banArray=[[NSMutableArray alloc]init];
bannerObj *bannObj = [[bannerObj alloc]init];


NSString *bannerImagestr;
for(int i=0; i<[bannerArray count]; i++){
    bannerImagestr = [[bannerArray objectAtIndex:i] BannerImage];

    NSLog(@"banner image str-------->>> %@",bannerImagestr);

    if(bannerImagestr != nil){

    bannerImagestr  = [ bannerImagestr  stringByTrimmingCharactersInSet: [NSCharacterSet whitespaceAndNewlineCharacterSet]];

    NSURL *url = [NSURL URLWithString:bannerImagestr];
    NSData *data = [NSData dataWithContentsOfURL:url];

    img = [[[UIImage alloc] initWithData:data] autorelease];
        bannObj.url = img;
        bannObj.index = i;

    [banArray addObject:bannObj];

        NSLog(@"banner array---->>>%@",banArray);

    }
}

[spinner stopAnimating];
}

这是一个在区域上设置图像的目标方法。

-(void) targetMethod:(id) sender {


int countOfBanners=[banArray count];

NSLog(@"count of banners ----->> %d",countOfBanners);
if(numTimerTicks< countOfBanners)
{

     roundedButtonType.tag = [[banArray objectAtIndex:numTimerTicks]index];
    [roundedButtonType setBackgroundImage:[[banArray objectAtIndex:numTimerTicks]url]forState:UIControlStateNormal]; //sets the background Image
    numTimerTicks++;

}
else{
    numTimerTicks=0;
}

NSLog(@"count of timer ticks ----->> %d",numTimerTicks);
}

这会设置Feed中的最后一张图片,但我无法显示其他横幅图片。有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

糟糕!!我应该在for循环中调用bannerObj *bannObj = [[bannerObj alloc]init]; ..:D 我的坏......:P