私はスクロールとページングを有効にしてサブビューに画像を読み込むUIViewを持っています。今、私は、画像にズームするピンチジェスチャーを追加することだし、それは働いていますが、いくつかの問題に:UIScrollViewとUIPinchGestureRecognizer
- 私は、全体のscrollview、私はズームを制限したい画像
- ないだけをズームしているように見えます画像の輪郭サイズに合わせることで、今度はズームアウトしてズームすることができ、ズームインするのが難しくなります。
- ズームインするとスクロールできません。
ここでは、コードです:
NSDictionary *dictionary = [tmpAppDelegate.data objectForKey:selectedTitle];
NSArray *MenuImageArr = [[NSArray alloc] init];
MenuImageArr = [dictionary objectForKey:@"MenuArr"];
NSMutableArray *menuImages = [[NSMutableArray alloc] init];
scrollView.delegate = self;
// loop through all names from the plist and add image to the array
for (NSInteger i = 0; i < [MenuImageArr count]; i++) {
NSString *name = [MenuImageArr objectAtIndex:i];
[menuImages addObject:[UIImage imageNamed:[NSString stringWithFormat:@"%@_%@", selectedTitle, name]]];
}
for (int i = 0; i < menuImages.count; i++) {
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * i;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
subview = [[UIImageView alloc] initWithFrame:frame];
subview.image = [menuImages objectAtIndex:i];
[self.scrollView addSubview:subview];
}
self.pageControl.numberOfPages = menuImages.count;
self.scrollView.contentSize = CGSizeMake(self.scrollView.frame.size.width * menuImages.count, self.scrollView.frame.size.height);
}
- (void)scrollViewDidScroll:(UIScrollView *)sender {
// Update the page when more than 50% of the previous/next page is visible
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth/2)/pageWidth) + 1;
self.pageControl.currentPage = page;
}
- (IBAction)changePage {
// update the scroll view to the appropriate page
CGRect frame;
frame.origin.x = self.scrollView.frame.size.width * self.pageControl.currentPage;
frame.origin.y = 0;
frame.size = self.scrollView.frame.size;
[self.scrollView scrollRectToVisible:frame animated:YES];
pageControlBeingUsed = YES;
}
- (IBAction)handlePinch:(UIPinchGestureRecognizer *)recognizer {
recognizer.view.transform = CGAffineTransformScale(recognizer.view.transform, recognizer.scale, recognizer.scale);
recognizer.scale = 1;
}
私は、これらの問題を続行するかどうかはわかりません。
UIWebView(スクロールビューではなく)を使用してイメージをそこに置く(HTMLとして)と、ピンチとズームとスクロールのすべての機能が組み込まれているのはなぜですか? –
スクロールビュー私はページングを有効にして、それが行く方法だと思っていたからです。しかし、おそらく私は代わりにwebviewを使用する必要があります。今度は、plistからX個のイメージをページビュー用のサブビューにロードします。しかし、私はwebviewでお互いの上にそれらを読み込んで、ページングの代わりにスクロールすることができます。それがどうやって行くのか見てみよう。 – KeLLoGsX