使用缩放 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”的帧不匹配