ios – 设置UIScrollView缩放比例以适应屏幕

ios – 设置UIScrollView缩放比例以适应屏幕,第1张

概述我的观点是复制使用照片的许多应用程序的行为,当UIScrollView与UI ImageView内部呈现时,即使此图像较小,它也适合图像大小的屏幕. 我确定这不应该用UIImageView框架完成,而是由UIScrollView *** 作,但是如何……? 在我的代码中,我有一个名为updateZoom的方法,它计算minimumZoomScale值,并将此值赋给zoomScale属性.我想这是做数学并手 我的观点是复制使用照片的许多应用程序的行为,当UIScrollVIEw与UI ImageVIEw内部呈现时,即使此图像较小,它也适合图像大小的屏幕.

我确定这不应该用UIImageVIEw框架完成,而是由UIScrollVIEw *** 作,但是如何……?

在我的代码中,我有一个名为updateZoom的方法,它计算minimumZoomScale值,并将此值赋给zoomScale属性.我想这是做数学并手动计算zoomScale的正确位置.

这是方法:

- (voID)updateZoom {    float minZoom = MIN(self.vIEw.bounds.size.wIDth / self.imageVIEw.image.size.wIDth,self.vIEw.bounds.size.height / self.imageVIEw.image.size.height);    if (minZoom > 1) {        minZoom = 1;    }    self.scrollVIEw.minimumZoomScale = minZoom;    self.scrollVIEw.zoomScale = minZoom;}

我希望有人能给我一个关于如何设置zoomScale以适应UIScrollVIEw边界的热门话题.

解决方法 上面的解决方案有效,但我很难理解为什么.我想分享这两篇文章,我发现这些文章非常有用,可以正确设置mininumZoomScale并使其与iOS8 / XCode 6一起使用.

首先,让滚动视图在iOS8上工作要求您从一开始就正确设置约束.其他海报建议,我同意,您的滚动视图应该只有一个内容视图.很好地将所有其他视图嵌入到一个内容视图中,但您不希望将滚动视图约束设置为一堆小视图.

将top,Leading,Trailing和Bottom约束连接到内容视图(在我的例子中是UIImageVIEw)的滚动视图,常量为0.这会将内容视图的边缘设置为滚动视图.

接下来,使用Equal WIDth和Equal Height约束将内容视图的大小设置为滚动视图.您无法在内容视图中使用“固定宽度”和“固定高度”,因为缩放将不起作用,您也无法自行管理大小.如果没有这些约束,iOS8会在您有机会产生一些奇怪的工件之前将大小设置为(0,0).有了这些约束,请在orIEntation方法中调用updateZoom方法,你很好.在iOS7中,在dIDRotateFromInterfaceOrIEntation中调用它.在iOS8中,从vIEwWillTransitionToSize调用它.您需要更新代码以传递新大小.

非常感谢Natasha The Robot提供的约束解决方案:http://natashatherobot.com/ios-autolayout-scrollview/

当您调用updateZoom方法调整最小值时,还应检查当前的zoomScale是否为<你的minimumZoomScale并重置它,如果是的话.您不应该重置zoomScale,否则当方向发生变化时,这将成为用户的另一种古怪外观. 至于其余部分以及数学运算的原因,objc.io的Joe Conway在UIScrollVIEws的这篇关于边界与框架的精彩文章中全力以赴:http://www.objc.io/issue-3/scroll-view.html

感谢上面的海报和上面的海报.

-(voID)updateZoom {    self.scrollVIEw.minimumZoomScale = MIN(self.scrollVIEw.bounds.size.wIDth / self.imageVIEw.image.size.wIDth,self.scrollVIEw.bounds.size.height / self.imageVIEw.image.size.height);    if (self.scrollVIEw.zoomScale < self.scrollVIEw.minimumZoomScale)        self.scrollVIEw.zoomScale = self.scrollVIEw.minimumZoomScale;}
总结

以上是内存溢出为你收集整理的ios – 设置UIScrollView缩放比例以适应屏幕全部内容,希望文章能够帮你解决ios – 设置UIScrollView缩放比例以适应屏幕所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1109680.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-29
下一篇2022-05-29

发表评论

登录后才能评论

评论列表(0条)

    保存