2012-10-17 90 views
0

我用UIImageView init.I添加滚动视图。我在UIImageView上添加一个按钮。当我缩放图像时,我的按钮也执行缩放。如何缩放图像而不是按钮。如何提前为您提供感谢。如何在iPhone中缩放图像而不缩放子视图?

enter image description here

+0

请检查 [http://stackoverflow.com/questions/8275234/how-do-i-add-a-scrollable-zoomable-image-into-the- MAINVIEW-XIB-对的一实用基] [1] [1]:http://stackoverflow.com/questions/8275234/how-do-i-add-a-scrollable-zoomable -image-into-mainview-xib-a-utility-base –

+0

Hello Bharathi D,Thanks for quick reply but thi s没有解决我的问题,因为当我放大图像然后在UIIMageView中实际子视图的按钮也zoom.I想要一种方式,我的按钮不会缩放以及其在图像上的位置将保持相同。提前感谢。 –

+0

这个问题的任何相关代码块? –

回答

0

添加按钮上imageScrollView上海华盈的imageScrollView后,使该按钮不滚动视图的子视图。

+0

你能不能更好地理解它..我没有正确理解它。 –

2

将您不希望受到UIScrollView影响的按钮和任何其他视图放大到与UIScrollView相同的水平。以下是为此设置的示例视图层次结构。

enter image description here

滚动视图和任何在它里面会放大(在这种情况下,图像视图)。 在滚动视图下方的UIView(在这种情况下,带有Default.png图像的图像视图)在缩放滚动视图时不会缩放。

编辑:

要使按钮保持相对于图像的同一位置在它添加作为一个子视图到您的滚动视图,添加UIScrollViewDelegate到视图控制器标题。在您的视图控制器实现中:捕获viewWillAppear中的初始UIButton帧,并使用滚动视图委托scrollViewDidZoom方法更新按钮帧,以便保持原位。这也将允许按钮在平移时与图像一起移动。

下面是更新视图结构:

enter image description here

适用的视图控制器代码段:

@interface MyViewController() { 
    CGRect initialButtonFrame; 

    ... 
} 

-(void)viewWillAppear:(BOOL)animated{ 
    [super viewWillAppear:animated]; 

    initialButtonFrame = self.button.frame; 

    ... 
} 

- (void)scrollViewDidZoom:(UIScrollView *)sv 
{ 

     self.button.frame = CGRectMake((initialButtonFrame.origin.x * self.scrollView.zoomScale), 
           (initialButtonFrame.origin.y * self.scrollView.zoomScale), 
           initialButtonFrame.size.width, 
           initialButtonFrame.size.height); 

... 
} 

这里有几个表示按钮图像停留在相对于它放置在适当位置的图片。请注意,当未放大(第一幅图像)和放大(第二幅图像)时,按钮原点位于靠近消防员外套中心底部的红色区域的左上角。

enter image description here

enter image description here

+0

感谢您的关注,但如果我在任何其他视图上添加按钮,那么它将不会缩放,但图像会缩放,并且按钮相对于图像的位置也会发生变化。我希望图像缩放,按钮不会缩放(按钮的大小保持不变),按钮相对于图像的位置保持不变。谢谢。 –

+0

感谢您的建议,但我已经尝试过了。我需要改变按钮相对于图像的位置。如果我按照您的要求操作,那么按钮将显示在屏幕上,并且图像将在其后缩放,因此按钮在图像上的位置不会改变作为图像放大。 –

+0

谢谢bobnoble ...但它的位置不会适当地改变。如果图像上有红色标记,我在图像上添加一个按钮,因为按钮的角落会触摸红色标记。然后,当我放大图像时,按钮会改变其位置,红色标记和按钮会移开。所以这并不能解决问题。我需要在缩放时同时保留(红色标记和按钮)。 –