使用缩放 uiscrollview 的帧不正确

Posted

技术标签:

【中文标题】使用缩放 uiscrollview 的帧不正确【英文标题】:incorrect frame using zoom uiscrollview 【发布时间】:2012-07-18 10:14:53 【问题描述】:

我有一个包含 UIImageView 的UIScrollView。 我需要缩放我的 UIImageView。

我正在使用以下方法:

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
    return imageView; // my UIImage about I describe here.

在 viewDidLoad 方法中,我为我的UIImageView 设置了框架(例如NSRect: 110, 180, 100, 100

NSLog(@"image view frame %@", [NSValue valueWithCGRect:self.imageView.frame]);

在这种情况下注销此值:图像视图框架NSRect: 110, 180, 100, 100

但是当我尝试在缩放后输出 imageView 的帧时,我会得到下一个数量的新值:

9.9999971, 9.9999971, 100.00001, 100.00001

我不明白为什么我会得到这个值 9.9999971。我的意思是说。是的,我知道缩放后我们会改变坐标,但我不明白为什么我们得到的不是 9.0f 而不是 9.9999971 以及为什么不是 100.0 100.00001

【问题讨论】:

【参考方案1】:

我已经实现了你提到的图像缩放的演示代码。

(UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 返回imgZoom;

我已经获得了我在视图中设置的 imageview 的值并加载了。

我认为你做错了什么。

如果你能分享更多,我可以详细告诉你。

谢谢

【讨论】:

您好,感谢您的回复。所以我有两个部分检查 CGRect UIImageView 的值。所以,首先 - 我在 viewDidLoad 方法中输出值,在这个阶段我有正确的 CGRect UIImageView 值。在下一步我用缩放方法做一些事情(例如增加缩放)。然后我想检查 CGRect UIImageViwe 的新值,在这个阶段我得到奇怪的参数,例如9.9999971, 9.9999971, 100.00001, 100.00001 等。但我想改用 10.0, 10.0, 100.0, 100.0。

以上是关于使用缩放 uiscrollview 的帧不正确的主要内容,如果未能解决你的问题,请参考以下文章

弹回 parentVC 后 parentVC 和 childVC 中的帧不正确

快速滚动后,粘性滚动视图子视图的帧不正确。可编译的例子

创建UICollectionViewCell时子视图帧不正确

警告:UICollectionViewFlowLayout 已缓存索引路径“abc”的帧不匹配

iOS开发UI篇—UIScrollView控件实现图片缩放功能

容器视图中的 UIScrollView 的帧大小不正确