在缩放时保持UIButton相对

时间:2012-06-27 14:12:00

标签: iphone objective-c ios xcode ipad

我有一个带有UIImageview的UIScrollview,里面显示了平面图。我在scrollview中也有一个UIButton作为标记/引脚。

我已经在图像上使用捏合/双击进行缩放,但是当图像滚动和/或缩放时,UIButton元素显然不会移动。

我已尝试以下代码尝试在完成缩放时重新定位按钮:

[myButton setFrame:CGRectMake(
                          (myButton.frame.origin.x - myButton.frame.size.width / 2) * _scrollView.zoomScale,
                          (myButton.frame.origin.y - myButton.frame.size.height / 2) * _scrollView.zoomScale,
                          myButton.frame.size.width, myButton.frame.size.height)];

这会将按钮移动到左上角。

有没有人知道我应该做些什么来保持按钮相对于图像(与标记在Google地图上的行为相同)。

2 个答案:

答案 0 :(得分:0)

我最近回答了question very similar to this。如果您不需要实时更新(仅在完成缩放时更新),那么您应该能够使用此处概述的方法。

答案 1 :(得分:0)

好的,这可以通过以下方式解决:

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setBackgroundImage:[UIImage imageNamed:@"Marker.png"] forState:UIControlStateNormal];
button.frame = CGRectMake(640.0, 230.0, 30.0, 46.0);
[button addTarget:self action:@selector(aMethod:)forControlEvents:UIControlEventTouchUpInside];
[self.imageView addSubview: button];
self.imageView.userInteractionEnabled = YES;

基本上,通过直接向imageView添加按钮然后启用userInteraction,我就能够获得所需的所有功能。