【问题标题】:image is not scrolling when both scrollview and image view are in storyboard当滚动视图和图像视图都在情节提要中时,图像不滚动
【发布时间】:2017-02-06 16:29:38
【问题描述】:

我使用 Xcode 8 创建了一个示例项目,故事板具有滚动视图和图像视图作为滚动视图的子视图。图像视图的内容模式设置为中心。滚动视图不滚动。

![Here are the constraints in the story board: scrollView]1

这里是代码

import UIKit

类视图控制器:UIViewController {

@IBOutlet weak var imageView: UIImageView!

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    imageURL = "http://www.hdwallpapers.in/walls/cosmea_floral_bloom-wide.jpg"
}

var imageURL: String? {
    didSet {
        updateImage()
        scrollView.contentSize = imageView.frame.size
    }
}

func updateImage() {
    if let data = NSData(contentsOf: URL(string:imageURL! )!) {
        imageView.image = UIImage(data: data as Data)
        imageView.sizeToFit()
    }
}

}

但是,当我以编程方式创建 imageView 时,scrollView 可以工作。我在上面的代码中缺少什么?下面的代码有效

import UIKit

类 ImageViewController: UIViewController {

var image: UIImage? {
    get {
        return imageView.image
    }
    set {
        imageView.image = newValue
        imageView.sizeToFit()
    }
}

var imageUrl: URL? {
    didSet {
        image = nil
        fetchImage(url: imageUrl)
    }
}

func fetchImage(url: URL?) {
    let data = NSData(contentsOf: url!)
    image = UIImage(data: data as! Data)!
}

var imageView = UIImageView()

@IBOutlet weak var scrollView: UIScrollView!

override func viewDidLoad() {
    super.viewDidLoad()
    imageUrl = ImageData.imageURL(for: ImageData.images["imageOne"]!)!
    scrollView.addSubview(imageView)
    scrollView.contentSize = imageView.frame.size
}

}

【问题讨论】:

  • 在情节提要中设置时添加了哪些约束?
  • 我为约束添加了截图

标签: ios iphone ipad swift3 xcode8


【解决方案1】:

您应该删除对齐中心 X 和对齐中心 Y 约束。这些约束将您的图像视图固定在适当的位置,并且不允许滚动。

当您删除它们时,您可能会收到约束错误。这是因为在设计时您的布局是模棱两可的。图像视图的固有大小基于图像,但您希望在运行时设置图像。要解决这个问题,您应该选择您的图像视图,转到尺寸检查器,单击固有尺寸下拉菜单并设置占位符尺寸。占位符大小将仅在设计时使用并在运行时替换。

【讨论】:

    猜你喜欢
    • 2020-05-31
    • 1970-01-01
    • 1970-01-01
    • 2017-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    相关资源
    最近更新 更多