2011-06-29 26 views
1

嗨,我有一个大的图像和它在一个特定的位置的小图像... 我将它们全部添加到ScrollView下,但它不能正常工作? 我要放大,一起各在其位我怎样才能使用UIScrollView重叠图像iphone

这里是我的代码:

myScrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height); 
    myScrollView.maximumZoomScale = 3.0; 
    myScrollView.minimumZoomScale = 1.0; 
    myScrollView.clipsToBounds = YES; 
    myScrollView.delegate = self; 

    [myScrollView addSubview:imageView]; 

感谢


嗨,麦克沃思;我做到了,但如果我没有最大化图像,我无法在任何地方移动滚动视图,但如果我放大它,我可以看到其余的部分..我不知道为什么我试图改变它,但它工作。你能看看下面的代码吗?

- (void)viewDidLoad{ 
    [super viewDidLoad]; 
    UIImage *image = [UIImage imageNamed:@"ucd.png"]; 
    //creating a view for UCD image 
    ucdView = [[UIImageView alloc] initWithImage:image]; 
    //setting the frame for the ucdView as the same size of ucd image 
    [ucdView setFrame:CGRectMake(0, 0, image.size.width, image.size.height)]; 


    //for the red pin to display in specific loc 
    UIImageView *Health = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"redPin.png"]]; 
    [Health setCenter:CGPointMake(310,135)]; 
    //adding helathView to ucdview 
    [ucdView addSubview:Health]; 
    //everything for scroll view 
    UIScrollView *scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, ucdView.frame.size.width, ucdView.frame.size.height)]; 
    [scrollView setMinimumZoomScale:1.0]; 
    [scrollView setMaximumZoomScale:3.0]; 
    scrollView.clipsToBounds = YES; 
    [scrollView setContentSize:CGSizeMake(image.size.width, image.size.height)]; 
    [scrollView setDelegate:self]; 
    [scrollView addSubview:ucdView];//adding ucd view to scroll view 
    [self.view addSubview:scrollView]; // adding scrollview to self.view main view 
} 

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {//apply zooming for scrollview 
    return scrollView; 
}  

回答

0

你实现:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView { 
    return self.imageView; 
} 

而且,你知道,在滚动视图的contentSize设置为您IMAGESIZE,它不能长得比任何更大的,对不对?它会放大位置,相应地裁剪外部像素。另外,如果这是您的计划,为什么不直接设置?

myScrollView.contentSize = imageView.frame.size; 

=====另外的答案,应对额外的源

好吧,我发现的主要事情是,你需要在viewForZoomingInScrollView,而不是滚动视图返回ImageView的ucdView。看起来你已经创建ucdView作为一个属性(这样的生活,只要你的观点一样),但以防万一...

1)在您的.h文件中:

UIImageView * ucdView; 
@property (nonatomic, retain) UIImageView * ucdView; 

2 )在你的.m文件中;

@synthesize ucdView; 

3)更改线路:

ucdView = [[UIImageView alloc] initWithImage:image]; 

只是

self.ucdView = [[UIImageView alloc] initWithImage:image]; 

4)改变线

return scrollView 

到:

return self.ucdView; 

5)以下内容添加到您的dealloc例行:

self.ucdView = nil; 

另外,你添加<UIScrollViewDelegate>协议,您的ViewController定义(在.h文件中)?

最后,你有一个scrollview和健康泄漏;添加[scrollView发布];和[健康发布]在视图底部DodLoad

+0

HI马克沃斯可以请你检查我张贴上面的答案,,, – Dalal

+0

请参阅我的答案的编辑版本。另外,恐怕我不能完全解析“我做了它,但如果我没有最大化图像,我无法在任何地方移动滚动视图,但是如果我放大它,我可以看到其余的..我不知道我为什么试图改变它,但它工作。“也许再拍一下? – mackworth

+0

嗨麦克,感谢您的答复百万,,,我修复了代码,你的帮助我很多.... – Dalal