Iphone 放大UIScrollView时出现问题?

Iphone 放大UIScrollView时出现问题?,iphone,Iphone,在我的应用程序中,我在UIScrollView中使用了UIImageView,并为此使用了代码 - (void)viewDidLoad { scrollV.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height); [super viewDidLoad]; } - (UIView *)viewForZoomingInScrollView:(UIScrollView *)scr

在我的应用程序中,我在UIScrollView中使用了UIImageView,并为此使用了代码

- (void)viewDidLoad 

{

scrollV.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height);

  [super viewDidLoad];

}

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    return imageView;
}
代码工作正常,但当我将UIButton放在scrollView的imageView上并缩放scrollV后,imageView会根据scrollView进行完美缩放,但UIButton不会被缩放


我希望在缩放imageview时,我在imageview上放置的按钮也可以相对于缩放的imageview进行缩放

创建一个代理UIView实例作为scrollview的子视图,并放置所有要放大的UI元素。然后从
viewForZoomingInScrollView
method

cgsizeimageview=[photo size]返回该视图;
    CGSize imageView = [photo size];
    UIScrollView *scrollView = (UIScrollView *)[self view];
    [scrollView setDelegate:self];
    [scrollView setContentSize:photoSize];
    [scrollView setBackgroundColor:[UIColor blackColor]];
    [scrollView setShowsHorizontalScrollIndicator:NO];
    [scrollView setShowsVerticalScrollIndicator:NO];

    // Create the image view.
    imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0.0, 0.0, photoSize.width, photoSize.height)];
    [imageView setImage:photo];
    [scrollView addSubview:imageView];

    // Configure zooming.
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    CGFloat widthRatio = screenSize.width / photoSize.width;
    CGFloat heightRatio = screenSize.height / photoSize.height;
    CGFloat initialZoom = (widthRatio > heightRatio) ? heightRatio : widthRatio;
    [scrollView setMaximumZoomScale:3.0];
    [scrollView setMinimumZoomScale:initialZoom];
    [scrollView setZoomScale:initialZoom];
    [scrollView setBouncesZoom:YES];

    // Center the photo.
    CGFloat topInset = (screenSize.height - photoSize.height * initialZoom) / 2.0;
    if (topInset > 0.0)
    {
        [scrollView setContentInset:UIEdgeInsetsMake(topInset - 44.0, 0.0, 0.0, 0.0)];
    }
}

#pragma mark -
#pragma mark UIScrollViewDelegate

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

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    CGSize screenSize = [[UIScreen mainScreen] bounds].size;
    CGSize photoSize = [photo size];
    CGFloat topInset = (screenSize.height - photoSize.height * [scrollView zoomScale]) / 2.0;
    if (topInset < 0.0)
    {
        topInset = 0.0;
    }

    [scrollView setContentInset:UIEdgeInsetsMake(topInset, 0.0, -topInset, 0.0)];
}
UIScrollView*滚动视图=(UIScrollView*)[self-view]; [scrollView setDelegate:self]; [scrollView setContentSize:photoSize]; [scrollView setBackgroundColor:[UIColor blackColor]]; [滚动视图设置ShowShorizontalsCrollinIndicator:否]; [滚动视图设置显示垂直滚动指示器:否]; //创建图像视图。 imageView=[[UIImageView alloc]initWithFrame:CGRectMake(0.0,0.0,photoSize.width,photoSize.height)]; [图像视图设置图像:照片]; [滚动视图添加子视图:图像视图]; //配置缩放。 CGSize screenSize=[[UIScreen mainScreen]界限].size; CGFloat widthRatio=屏幕大小.width/photoSize.width; CGFloat heightRatio=屏幕大小.height/photoSize.height; CGFloat initialZoom=(宽度比>高度比)?高度比:宽度比; [滚动视图设置最大缩放比例:3.0]; [滚动视图设置最小缩放比例:初始缩放]; [滚动视图设置缩放比例:初始缩放]; [滚动视图setBouncesZoom:是]; //将照片居中。 CGFloat topInset=(screenSize.height-photoSize.height*initialZoom)/2.0; 如果(顶部插图>0.0) { [scrollView设置内容插图:UIEdgeInsetsMake(顶部插图-44.0,0.0,0.0,0.0)]; } } #布拉格标记- #pragma标记UIScrollViewDelegate -(UIView*)视图用于缩放CrollView:(UICrollView*)滚动视图 { 返回图像视图; } -(无效)scrollViewDidScroll:(UIScrollView*)scrollView { CGSize screenSize=[[UIScreen mainScreen]界限].size; CGSize photoSize=[照片大小]; CGFloat topInset=(screenSize.height-photoSize.height*[scrollView zoomScale])/2.0; 如果(顶部插图<0.0) { 顶部插图=0.0; } [scrollView setContentInset:UIEdgeInsetsMake(topInset,0.0,-topInset,0.0)]; }
我成功地找到了上述问题的答案。我为此编写了

- (void)viewDidLoad 

{

    bgViewOfImage.contentStretch = CGRectMake(ImageView.frame.origin.x, ImageView.frame.origin.y, ImageView.frame.size.width, ImageView.frame.size.height);
    scrollV.contentSize = CGSizeMake(bgViewOfImage.frame.size.width, bgViewOfImage.frame.size.height);
    [super viewDidLoad];
}


- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    return bgViewOfImage;
}

我创建了一个层次结构,在主视图中插入一个UIView,然后在主视图上拖动其他控件,如UIImageview和UIButtons。现在它可以完美地工作并缩放每个控件。

@Jacob Relkin,你有什么想法吗?