首页 文章

iOS UIScrollView与UIImageView旋转方面问题

提问于
浏览
2

我因缺乏iOS SDK知识而提前道歉,我是一名负责维护和更新iPhone应用程序的Android开发人员 .

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

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

我的问题是,在旋转设备后,UIImageView的行为从未像我期望的那样 . 我的预期行为是UIScrollView将继续执行其滚动操作,但在旋转后将其基本视图重置为新帧尺寸的基本视图 .

如果我没有为UIScrollView指定contentMode,则Image会出现压缩状态,就好像ScrollView正在尝试在先前的方向维度中显示图像一样 .

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

如果我为ScrollView指定了UIViewContentModeScaleAspectFill的contentMode,则所有内容都会正确显示,但是当我退出scrollView时,View实际上是将图像缩放到适合屏幕的位置,我正在使用的缩放数据没有正确转换 .

当设备方向发生变化时,我需要做什么才能将UIScrollView的“基本大小”设置为新的帧大小?或者我错过了我需要设置的属性?

2 回答

  • 0

    听起来您可能没有在滚动视图上更新内容大小 . 你需要做点什么

    scrollView.contentSize = newImageSize;
    

    希望就是这样

  • 1

    如果我理解正确,您可以在UIScrollView中使用 zoomToRect:animated: 方法 . 然后,您可以将缩放设置为图像的大小 .

相关问题