我由于缺乏iOS SDK知识而向我道歉,我是一名Android开发人员,负责维护和更新iPhone应用程序。

我正在使用UIScrollView处理在UIImageView上显示的图像的缩放和拖动。

每秒多次从Web服务器请求UIImageView中的图像。当设备的方向改变时,图像尺寸将更改为当前帧的尺寸,例如,在纵向模式下使用iPad时,图像尺寸将为768x1024,但在切换为横向模式时,图像的尺寸将为1024x768。网络服务器会根据我请求的图像的方向和纵横比,在图像的顶部/底部或左侧/右侧添加黑条。

我的问题是旋转设备后,UIImageView永远不会表现出我期望的样子。我的预期行为是UIScrollView将继续执行其滚动动作,但在旋转后将其基本视图重置为新框架尺寸的基本视图。

如果我没有为UIScrollView指定contentMode,则Image看上去像是被压缩了,就好像ScrollView试图以以前的方向尺寸显示图像。

如果我为ScrollView指定UIViewContentModeScaleScaleAspectFit的contentMode并一直缩小,则图像看起来小于View,则长宽比是正确的,但是图像居中,并且高度是先前方向的高度。

如果我为ScrollView指定UIViewContentModeScaleAspectFill的contentMode,则所有内容都会正确显示,但是由于View实际上是在我退出scrollView时将图像按比例缩放以适合屏幕,因此我使用的缩放数据无法正确转换。

更改设备方向后,我该怎么做才能将UIScrollView的“基本大小”设置为新的框架大小?还是我缺少需要设置的属性?

最佳答案

听起来您可能没有在滚动视图上更新内容大小。
你需要做类似的事情

scrollView.contentSize = newImageSize;

希望就是这样

10-08 06:08