1

我在我的博客应用程序中解析 XML。当我解析它时,我创建了一个名为 entry 的对象,具有 Title、Article、Link、Content 和 Image 的属性。然后我有一个称为条目的可变数组,在解析完成后,我将对象条目添加到条目中。这样,要在表格视图中获取某篇文章的标题,我可以调用

 RSSEntry *entry = [_Entries objectAtIndex:indexPath.row];
 NSString *title = entry.Title;

我想做的是在 tableview 上方有一个 UIImageView,并将其设置为滚动数组中的所有不同 UIImage,但我不确定如何实现这一点。我知道 animationImages 属性,但不确定在这一切中将什么设置为 NSArray,因为我使用带有属性的可变数组。任何建议都会有很大帮助。

4

3 回答 3

0

我希望你知道如何将 UIImageView 放在 xob/storyboard 中的 tableview 上方。比我不确定你想对图像数组做什么,但如果这满足你的需要,那么它可以是一个滑动识别器,然后滑动图像

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

    UISwipeGestureRecognizer* recognizerLeft = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeLeft)];

    recognizerLeft.direction =UISwipeGestureRecognizerDirectionLeft;
    recognizerLeft.numberOfTouchesRequired =1;

    [self.view addGestureRecognizer:recognizerLeft];
    [recognizerLeft release];

    UISwipeGestureRecognizer* recognizerRight = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(swipeRight)];

    recognizerRight.direction =UISwipeGestureRecognizerDirectionRight;
    recognizerRight.numberOfTouchesRequired =1;

    [self.view addGestureRecognizer:recognizerRight];    
    [recognizerRight release];

}

- (IBAction)swipeLeft{
    //NSLog(@"Swipe left");
    if(pager.currentPage < pager.numberOfPages - 1){
        pager.currentPage = (pager.currentPage + 1 );
        [self pagerValueChanged];
    }

}

- (IBAction)pagerValueChanged 
{
    NSData* imgData = [images objectAtIndex:pager.currentPage];
    UIImage* img = [[UIImage alloc]initWithData:imgData];
    imageView.image = img;

    //NSLog(@"img width: %f, img height: %f", img.size.width, img.size.height);

    [img release];
}

我的代码中也有分页控件和其他控件,但您可能不需要这些

于 2012-09-11T15:26:23.710 回答
0

有两种选择:

a) 通过迭代_Entries设置animationImages数组值来收集单独数组中的所有图像;

b) 准备您自己的视图,在构造函数处初始化计时器,在 处[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]更改显示的图像selector。要制作流畅的动画,您可以使用两个 imageView 子视图设置动画显示的 imageView alpha 从 1 到 0,下一个 imageView alpha 从 0 到 1。作为数据源,您可以使用RSSEntry*从那里获取图像的数组,并使用已知的 keypath。

第一个选项相当容易。

于 2012-09-11T15:26:26.287 回答
0

这很容易使用数组枚举。以下代码将采用您已经配置的滚动视图,并为数组中的所有对象添加图像视图。它还将根据数组的计数动态调整滚动视图的内容大小。

[myMutableArray enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop){
    UIImageView *myImageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[myMutableArray objectAtIndex:idx]]];
    [myImageView setFrame:CGRectMake(myScrollView.frame.size.width * idx, myScrollView.frame.origin.y, myScrollView.frame.size.width, myScrollView.frame.size.height)];
    [myScrollView addSubview:myImageView];
    [myScrollView setContentSize:CGSizeMake((myScrollView.frame.size.width * idx) + myScrollView.frame.size.width, myScrollView.frame.size.height)];
}];
于 2012-09-11T17:51:50.930 回答