我想在我的应用程序中实现一个iCarousel来显示视图控制器,就像下面的图片一样。我看了很多教程和链接,但是没有得到我需要的结果。请帮帮我。
我想在我的应用程序中实现一个iCarousel来显示视图控制器,就像下面的图片一样。我看了很多教程和链接,但是没有得到我需要的结果。请帮帮我。
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{
UILabel *label = nil;
UIImageView *imageLogo=nil;
UIImageView *imageBack=nil;
//create new view if no view is available for recycling
if (view == nil)
{
view = [[[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"page1" ofType:@"png"]]] autorelease];
imageBack=[[[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"3" ofType:@"png"]]] autorelease];
imageBack.frame=CGRectMake(70, 70,388, 49);
[view addSubview:imageBack];
label = [[UILabel alloc]initWithFrame:CGRectMake(80, 78, 380, 30)];
label.backgroundColor=[UIColor darkGrayColor];
label.font = [label.font fontWithSize:20];
label.backgroundColor=[UIColor clearColor];
[view addSubview:label];
imageLogo=[[[UIImageView alloc] initWithImage:[UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"Map" ofType:@"png"]]] autorelease];
imageLogo.frame=CGRectMake(25, 70, 50, 49);
[view addSubview:imageLogo];
}
else
{
label = [[view subviews] lastObject];
}
label.text = @"Some text";
label.frame=CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width,label.frame.size.height);
return view;
}
}
iCarousel用于显示视图,而不是视图控制器。
您不需要为所尝试的内容拥有一个视图控制器数组 - 因为所有视图都表现出相同的行为方式,您可以将控制逻辑放在一个视图控制器中,该视图控制器管理旋转木马,并使旋转木马视图中的任何按钮调用主视图控制器上的方法,使用项目索引来确定哪个旋转木马项被按下。
iCarousel包含几个示例,展示了如何实现这一点,包括控件示例,该示例展示了如何从nib文件加载单个旋转木马视图并将它们的动作绑定到主视图控制器。
尝试使用iCarousel for iOS,它是一种更好的方式,易于实现更多的轮播效果,如垂直和水平。以下链接可供下载和实现教程。
iCarousel演示项目下面的链接:
https://github.com/nicklockwood/iCarousel
iCarousel水平滚动实现教程如下链接: