gpt4 book ai didi

ios - 当 ScrollView 和 ImageView 都在 Storyboard 中时,图像不滚动

转载 作者:行者123 更新时间:2023-11-29 00:39:56 25 4
gpt4 key购买 nike

我使用 Xcode 8 创建了一个示例项目,其中的 Storyboard具有 ScrollView 和 ImageView 作为 ScrollView 的 subview 。 ImageView 的内容模式设置为居中。 ScrollView 不滚动。

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

这是代码

import UIKit

类 View Controller :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
}

最佳答案

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

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

关于ios - 当 ScrollView 和 ImageView 都在 Storyboard 中时,图像不滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39751798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com