我似乎在这里实现了所有正确的代码。我的代码中是否缺少某些内容?
//
// ScrollyiPadViewController.m
// ScrollyiPad
//
// Created by Sidwyn Koh on 5/19/10.
// Copyright __MyCompanyName__ 2010. All rights reserved.
//
#import "ScrollyiPadViewController.h"
@implementation ScrollyiPadViewController
-(void)viewDidLoad{
[self.view addSubview:scrollView];
[scrollView addSubview:imageView];
UIImage *image = [UIImage imageNamed:@"hardware-01-20100127.jpg"];
scrollView.contentSize = [image size];
scrollView.maximumZoomScale = 2.0;
// scrollView.delegate = self;
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{
return imageView;
}
/*
// The designated initializer. Override to perform setup that is required before the view is loaded.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
// Custom initialization
}
return self;
}
*/
/*
// Implement loadView to create a view hierarchy programmatically, without using a nib.
- (void)loadView {
}
*/
/*
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
}
*/
/*
// Override to allow orientations other than the default portrait orientation.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
*/
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
}
@end
答案 0 :(得分:12)
我正在经历类似的事情;放大后,平移将停止工作。想一想在委托函数'scrollViewDidEndZooming:withView:atScale:'我需要根据传递的'atScale'来更新ScrollView的contentsize属性。
像: self.scrollView.contentSize = CGSizeMake(self.imageView.image.size.width * scale,self.imageView.image.size.height * scale);
self.imageView.frame自动相对于缩放比例进行更新;所以你不需要根据比例调整框架。
如果没有显式设置scrollView的contentsize;然后它只是被赋予imageView框架大小...这使得imageView不可滚动。
答案 1 :(得分:1)
也许你必须在UIScrollView中设置ImageView的框架;
imageView.frame = CGRectMake(0, 0, imageViewer.image.size.width, imageViewer.image.size.height);
答案 2 :(得分:0)
我会
scrollView.contentSize = imageView.frame.size;
而不是
scrollView.contentSize = [image size];
答案 3 :(得分:-1)
找到它,我忘了设置clipstoBounds = YES