私のアプリでは、下の画像のようにView Controllerを表示するためのiCarouselを実装したいのですが、多くのチュートリアルとリンクについて調べましたが、要件を満たしていません。助けてください
4 に答える
iOSではカバーフローとして知られています。このリンクをたどると、必要なものが得られ、それを実装する方法がわかります。
または、スタック オーバーフローに関するこの質問も参照できます。そして、ここに私の答えが受け入れられています
iCarouselは、ビューコントローラではなく、ビューを表示するために使用されます。
すべてのビューが同じように動作するため、カルーセルを管理し、カルーセルビューにボタンを配置する1つのビューコントローラーに制御ロジックを配置できるため、ビューコントローラーの配列を用意する必要はありません。アイテムインデックスを使用してプライマリViewControllerのメソッドを呼び出し、押されたカルーセルアイテムを判別します。
これを行う方法を示すiCarouselに含まれるいくつかの例があります。これには、nibファイルから個々のカルーセルビューをロードし、それらのアクションをメインビューコントローラーにバインドする方法を示すコントロールの例が含まれます。
同じ効果のためにiCarouselを使用できます
以下のリンクから、カルーセル効果のサンプルコードをダウンロードします。 https://github.com/nicklockwood/iCarousel
NoNibFolderに1つの例があります。
それを開き、要件に応じて次のコードを変更します
//iCarouselExampleViewController.m内
以下の方法では、必要に応じてコードを変更します。メインビューに別のUIを追加することで、必要なUIを設計できます。
私の場合、そのメインビューに1つの画像とラベルを追加しました。
- (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 for iOS をお試しください。垂直方向や水平方向など、より多くのカルーセル効果を簡単に実装できる優れた方法です。ダウンロードと実装のチュートリアルについては、以下のリンクを参照してください。
リンクの下の iCarousel デモ プロジェクト:
https://github.com/nicklockwood/iCarousel
リンクの下の iCarousel 水平スクロール実装チュートリアル: