6

在我的应用程序中,我想实现一个 iCarousel 来显示如下图所示的视图控制器,我浏览了许多教程和链接,但我没有得到我的要求,请帮助我在此处输入图像描述

4

4 回答 4

5

它在 iOS 中被称为coverflow。按照这个链接,你会得到你想要的,并且会知道如何实现它。

或者你也可以参考这个关于堆栈溢出的问题。这里是我接受的答案

于 2012-11-26T05:47:25.550 回答
2

您可以使用 iCarousel 获得相同的效果

从下面的链接下载轮播效果的示例代码。 https://github.com/nicklockwood/iCarousel

No Nib Folder 中有一个例子。

打开它并根据您的要求修改以下代码

//在 iCarouselExampleViewController.m 中

在下面的方法中,根据您的需要修改代码。通过在主视图上添加不同的 UI,您可以设计所需的 UI。

就我而言,我在该主视图上添加了一个图像和标签。

- (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;
    }

}
于 2012-11-26T06:52:25.893 回答
2

iCarousel 用于显示视图,而不是视图控制器。

不需要为您尝试执行的操作提供一系列视图控制器 - 因为您的所有视图的行为方式都相同,您可以将控制逻辑放在一个视图控制器中,该控制器管理轮播并在轮播视图中有任何按钮在主视图控制器上调用方法,使用项目索引来确定按下了哪个轮播项目。

iCarousel 中包含几个示例来展示如何执行此操作,包括显示如何从 nib 文件加载单个轮播视图并将其操作绑定到主视图控制器的控件示例。

于 2012-11-26T08:33:45.677 回答
1

试试 iOS 版 iCarousel,它是更好的方法,可以轻松实现更多轮播效果,如垂直和水平。以下链接可下载和实现教程。

iCarousel 演示项目链接如下:

https://github.com/nicklockwood/iCarousel

iCarousel水平滚动实现教程如下链接:

http://haifa.baluyos.net/index.php?option=com_content&view=article&id=60:objective-c-image-carousel-tutorial&catid=1:programming&Itemid=5

于 2012-11-26T06:00:19.633 回答