UIScrollView 内にいくつかの画像を表示する必要がある 1 つの iPhone アプリを作成しています。左右には、ユーザーがボタンをクリックできる 2 つのボタンがあり、次または前の画像が表示されます。また、下部には1つのボタンがあり、ユーザーがそのボタンをクリックすると、スクロールビューで選択した画像が表示されます.スクロールビュー内に複数の画像を表示する方法と、下部ボタンを選択しているときに方法スクロールビュー内にあった画像を見つけます。
6 に答える
danielbeard.wordpress.com の例
画像名が単なる数字ではない場合:
UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
[scrollView setPagingEnabled:YES];
[scrollView setAlwaysBounceVertical:NO];
NSArray *imagesArray = [NSArray arrayWithObjects:@"img1.png", @"img2.png", @"img3.png", nil];
for (int i = 0; i < [imagesArray count]; i++)
{
CGFloat xOrigin = i * scrollView.frame.size.width;
UIImageView *imageView = [[UIImageView alloc] initWithFrame:CGRectMake(xOrigin, 0, scrollView.frame.size.width, scrollView.frame.size.height)];
[imageView setImage:[UIImage imageNamed:[imagesArray objectAtIndex:i]]];
[imageView setContentMode:UIViewContentModeScaleAspectFit];
[scrollView addSubview:imageView];
}
[scrollView setContentSize:CGSizeMake(scrollView.frame.size.width * [imagesArray count], scrollView.frame.size.height)];
Apple.developer PhotoScrollerは、埋め込まれた UIScrollViews と CATiledLayer を使用して、個別にパンおよびズームできる写真を表示およびページ付けするためのリッチなユーザー エクスペリエンスを作成する方法を示しています。
CATiledLayer は、高解像度の画像または大量の写真セットでのページング、パン、およびズームのパフォーマンスを向上させるために使用されます。
最初にランタイムとイメージで新しいビューを作成し、1000 や 100 などのすべてのビューにタグを割り当て、タグ値をインクリメントしてから、このビューをスクロールビューに追加し、左右に移動する 2 つのボタンを追加して、アウトレット アクションを作成し、すべてを追加します。このような可変配列へのサブビューのスクロールビュー
indexStart=100;
UIView *AddView=[[UIView alloc]initWithFrame:CGRectMake(55, 0, 100, 100)];
AddView.tag=indexStart;
btnTap.tag=indexStart;
UIImageView *imgview=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];
[AddView addSubview:imgview];
imgview.image=image;
imgview.tag=1000;
[ScrollView addSubview:AddView];
[imgArray addObject:AddView];
これを行うにはループを使用し、左右のボタンでこのコードを使用します。このコードでは、editImgeView は左右のボタンの間の画像ビューで、画像を表示するだけです。単純に indexstart ++ または -- ユーザーが右または左を選択した場合ボタン
for (int index = 0; index < [imgAddArrayAfter count]; index ++ ) {
NSLog(@"index %d",index);
UIView *vc=[imgArray objectAtIndex:index];
NSLog(@"view tag %d",vc.tag);
if(vc.tag == indexStart)
{
UIImageView *modalView=(UIImageView *) [vc viewWithTag:1000];
editImgeView.image=modalView.image;
}
}
お分かりできると良いのですが ;-)