【问题标题】:Why will my UIScrollView not zoom the UIImageView within it?为什么我的 UIScrollView 不会在其中缩放 UIImageView?
【发布时间】:2016-07-05 20:31:48
【问题描述】:

我有一个非常简单的项目,在 viewDidLoad 我只有:

    sv = UIScrollView(frame: view.frame)
    sv.delegate = self
    view.addSubview(sv)

    let iv = UIImageView(image: UIImage(named: "earth-small.jpg"))
    sv.addSubview(iv)

    sv.contentSize = iv.image!.size
    print(iv.image!.size)
    sv.minimumZoomScale = 0.1
    sv.maximumZoomScale = 10.0
    sv.zoomScale = 1.0

    centerMedia()

除此之外:

func viewForZoomingInScrollView(scrollView: UIScrollView) -> UIView? {
    return iv
}

func scrollViewDidScroll(scrollView: UIScrollView) {
    centerMedia()
}

func centerMedia() {
    var left = CGFloat(0.0)
    var top = CGFloat(0.0)

    if sv.contentSize.width < sv.bounds.size.width {
        left = (sv.bounds.size.width - sv.contentSize.width) / 2.0
    }

    if sv.contentSize.height < sv.bounds.size.height {
        top = (sv.bounds.size.height - sv.contentSize.height) / 2.0
    }

    sv.contentInset = UIEdgeInsets(top: top, left: left, bottom: top, right: left)
}

在我看来,这就像我为缩放所需的一切。但是,如果我放大或缩小,图像视图(具有 500pt x 300pt 图像)永远不会增大或缩小。

我做错了什么?

【问题讨论】:

  • let iv = UIImageView(image: UIImage(named: "earth-small.jpg")) -> 你确定你不是只保存方法范围的图像视图吗?
  • @JonasFranz 我欠你一个。啊啊啊。如此简单。

标签: ios swift cocoa-touch uiscrollview uiimageview


【解决方案1】:
let iv = UIImageView(image: UIImage(named: "earth-small.jpg"))

您必须在全类范围内声明 iv。 (见 cmets)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    • 1970-01-01
    • 2012-11-24
    • 2012-02-12
    • 2019-05-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多