缩放和标记

发布于 2024-11-08 13:55:50 字数 297 浏览 0 评论 0原文

我有 UIScrollView 和 UIImageView 。在 UIImageView 上,我有圆形标记(又一个 UIImageView),我可以将其拖动到 UIImageView 上。我想在 UIImageView 上缩放图像,所以:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return imageView;
}

但是当用户尝试缩放图像时,我的标记也在缩放。但我想看到我的标记的原始大小。我该怎么做呢?

I have UIScrollView with UIImageView on it. On UIImageView I have round marker(one more UIImageView), which I can drag on UIImageView. I want to zoom my image on UIImageView, so:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return imageView;
}

But when user is trying to zoom image my marker is zooming too. But I want to see my marker in its original size. How can I do it?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

∝单色的世界 2024-11-15 13:55:50

您可以在委托方法中将反向缩放变换应用于标记:

- (void) scrollViewDidEndZooming: (UIScrollView *) aScrollView withView: (UIView *) view atScale: (float) scale{
    marker.transform = CGAffineTransformMakeScale(1.0f/scale, 1.0f/scale);
}

或在 scrollViewDidZoom: 方法中 - 取决于哪一个将为您提供更好的行为

You can apply reverse zooming transform to your marker in delegate's method:

- (void) scrollViewDidEndZooming: (UIScrollView *) aScrollView withView: (UIView *) view atScale: (float) scale{
    marker.transform = CGAffineTransformMakeScale(1.0f/scale, 1.0f/scale);
}

Or in scrollViewDidZoom: method - depending on which one will give better behaviour for you

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文