iCarousel 从 NSMutableArray 加载 UIViews
Posted
技术标签:
【中文标题】iCarousel 从 NSMutableArray 加载 UIViews【英文标题】:iCarousel loading UIViews from NSMutableArray 【发布时间】:2013-02-19 09:34:58 【问题描述】:您好,我在我的应用中加入了 iCarousel 以显示视图列表。我现在面临一个问题。
-
如果我将可见项目数设置为 3,则显示 3 的倍数索引视图
如果我没有设置显示 icarousel 视图的第一个和最后一个索引。
我对在 iCarousel 中重用视图的概念感到非常困惑。
这是我的代码
-(void)viewWillAppear:(BOOL)animated
ViewArray=[[NSMutableArray alloc]init];
for (int i=0; i<26; i++)
[ViewArray addObject:views];
[carousel1 reloadData];
NSLog(@"%@",ViewArray);
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
//return the total number of items in the carousel
return 26;
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
UIView *sub=nil;
if (view==nil)
view=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 900, 387)];
capitalBG.frame=CGRectMake(28, 29, 221, 329);
capitalBG.tag=11;
[view addSubview:capitalBG];
capitalImage.frame=CGRectMake(28, 29, 221, 329);
[view addSubview:capitalImage];
capitalImage.tag=12;
smallBG.frame=CGRectMake(678, 111, 198, 166);
[view addSubview:smallBG];
smallBG.tag=21;
smallImage.frame=CGRectMake(678, 111, 198, 166);
[view addSubview:smallImage];
smallImage.tag=22;
else
capitalBG.frame=CGRectMake(28, 29, 221, 329);
[capitalBG setImage:[UIImage imageNamed:@""]];
[view addSubview:capitalBG];
capitalImage.frame=CGRectMake(28, 29, 221, 329);
[capitalImage setImage:[[[Global ImageCollection]objectForKey:@"CapitalWrite"]objectAtIndex:index]];
[view addSubview:capitalImage];
smallBG.frame=CGRectMake(678, 111, 198, 166);
[smallBG setImage:[UIImage imageNamed:@""]];
[view addSubview:smallBG];
smallImage.frame=CGRectMake(678, 111, 198, 166);
[smallImage setImage:[[[Global ImageCollection]objectForKey:@"SmallWrite"]objectAtIndex:index]];
[view addSubview:smallImage];
return view;
- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
if (option == iCarouselOptionSpacing)
return value * 1.1f;
if (option==iCarouselOptionVisibleItems)
return 3;
return value;
【问题讨论】:
@08442 我拥有具有不同图像的常春藤数组,我需要在该图像视图上绘制。当我在所有视图中尝试相同的图像时效果很好。当我将数组中的所有图像组合在一起时这个问题,,, 分配 subViews-capitalBG.frame=[UIImageView alloc]initWithFrameCGRectMake(28, 29, 221, 329)];,对所有都做同样的事情 【参考方案1】:显然,我没有得到您要求的内容。检查 I-carousal 的实现代码以显示图像。
- (NSUInteger)numberOfItemsInCarousel:(iCarousel *)carousel
//add all your images to an array,and use that array for count.
return [items count];
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
//create new view if no view is available for recycling
if (view == nil)
view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 215.0f, 155.0f)];
((UIImageView *)view).image = [UIImage imageNamed:[self.items objectAtIndex:index ]];
view.contentMode = UIViewContentModeCenter;
return view;
- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value
//customize carousel display
return value+0.1;
【讨论】:
感谢您的回答...您已经提供了使用 UIImageView 的代码,并且图像来自 Array.. 我正在尝试显示 Array 中的 UIView.. 你想在视图中显示什么 它有 UIimageviews 按钮滑块等 @user1931314 方法中添加所有子视图到carousalView - (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 我也尝试过这种方法......但我仍然只得到我的第一个和最后一个视图。在滚动查看它隐藏时显示中间视图..请检查我的代码..以上是关于iCarousel 从 NSMutableArray 加载 UIViews的主要内容,如果未能解决你的问题,请参考以下文章
从 segued View 返回时如何重新加载 iCarousel?
iCarousel + Parse:从 PFObject 加载异步图像