在Scrollview中缩放UIImageView的UI按钮

时间:2014-06-05 06:42:37

标签: ios objective-c cocoa-touch

我在scrollview中将按钮作为子视图添加到UIImageview。当我缩放UIImageView时,显然这些子视图按钮会以宽高比进行缩放。我不希望这些按钮被缩放。我怎样才能做到这一点。我已经尝试在不同的视图上添加按钮而不是将其添加到UIImageView,但是当我们缩放图像时它不会保持正确的x和y坐标。请提前向我提供解决方案

4 个答案:

答案 0 :(得分:1)

你可以将uibutton的中心设置为uiimageview的中心,如下所示(不要在imageview中添加按钮):

[btnControl setCenter:[imgView center]];

答案 1 :(得分:1)

对此的解决方案将涉及一些数学干预。

使用变换缩放图像视图。

[<yourview> setTransform:CGAffineTransformMakeScale(<xsacle>, <y scale>)];

现在,此变换也适用于您必须适当缩小按钮变换的所有子视图。

[<Your Button> setTransform:CGAffineTransformMakeScale(1/<xsacle>, 1/<y scale>)];

现在你需要调整按钮的x和y。

答案 2 :(得分:0)

首先需要存储按钮框架;

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

    initialButtonFrame = self.button.frame;
}

并在UIScrollView委托方法中使用以下代码。

- (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);
}

答案 3 :(得分:0)

您应该将这些按钮添加为其他视图的子视图。现在将其他视图和图像视图直接添加到滚动视图。现在,您应该实现UIScrollViewDelegate方法。

-(UIView *)viewForZoomingInScrollView
{
   return imageView;
}

这将仅缩放图像视图,而不是具有按钮作为子视图的容器视图。