1

我有一个 UIScrollview,里面有一个 UIImageview 显示平面图。我在滚动视图中还有一个 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)];

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

有没有人知道我应该做些什么来保持按钮相对于图像(就像标记在谷歌地图上所做的一样)。

4

2 回答 2

1

我最近回答了一个与此非常相似的问题。如果您不需要实时更新(仅在缩放完成时更新),那么您应该能够使用此处概述的方法。

于 2012-06-27T14:53:45.163 回答
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,我能够获得所需的所有功能。

于 2012-07-04T13:09:40.217 回答