代码之家  ›  专栏  ›  技术社区  ›  RickiG

为uiscrollView生成CGRECT的公式,该公式按比例显示uiimage

  •  0
  • RickiG  · 技术社区  · 14 年前

    我正在加载不同大小的图像并将其放入uiscrollview,所有图像都大于uiscrollview。 用户可以根据需要滚动和缩放,但最初我想要图像 居中和缩放,使图像的最大边与滚动视图的边对齐,即,如果图片是横向的,我希望调整和缩放它,使左侧和右侧一直到ui滚动视图的边,反之亦然。

    我在编程指南的实用程序函数中找到了一个公式,但它并不完全符合我的需要。

    我的方法是使用:

    CGrect initialPos = ?
    [self.scrollView zoomToRect:initialPos animated:YES];
    

    我知道我的滚动视图的大小和我的图像的大小,我需要知道的是应用于滚动视图的比例和cDirect,以使我的图像居中并调整大小。

    希望有人能帮忙:)谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   walkytalky    14 年前

    编辑: 以前的版本是根据视图而不是相反的方式调整图像大小。我认为这应该纠正:

    double imgRatio = imageSize.width / imageSize.height;
    double viewRatio = viewSize.width / viewSize.height;
    
    if ( imgRatio >= viewRatio )
    {
        initialPos.size.width = imageSize.width;
        initialPos.size.height = imageSize.width / viewRatio;
        initialPos.origin.x = 0;
        initialPos.origin.y = (imageSize.height - initialPos.size.height) / 2;
    }
    else
    {
        initialPos.size.height = imageSize.height;
        initialPos.size.width = imageSize.height * viewRatio;
        initialPos.origin.y = 0;
        initialPos.origin.x = (imageSize.width - initialPos.size.width) / 2;
    }