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