【发布时间】:2019-09-14 03:24:51
【问题描述】:
我已经为 UIScrollView 上的缩放功能插入了 delegates 和适当的代码。但是,当我运行代码时,最小或最大缩放值会返回“nil”。我不明白如何绕过这个。有什么建议吗?
import UIKit
import MapKit
import MessageUI
class ViewController: UIViewController, UIScrollViewDelegate {
@IBOutlet var scrollView: UIScrollView!
@IBOutlet var tylenol: UIImageView!
let backgroundImageView = UIImageView()
override func viewDidLoad() {
super.viewDidLoad()
setBackground()
self.scrollView.minimumZoomScale = 1.0
self.scrollView.maximumZoomScale = 6.0
}
func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return tylenol
}
func setBackground() {
view.addSubview(backgroundImageView)
backgroundImageView.translatesAutoresizingMaskIntoConstraints = false
backgroundImageView.topAnchor.constraint(equalTo: view.topAnchor).isActive = true
backgroundImageView.bottomAnchor.constraint(equalTo: view.bottomAnchor).isActive = true
backgroundImageView.leadingAnchor.constraint(equalTo: view.leadingAnchor).isActive = true
backgroundImageView.trailingAnchor.constraint(equalTo: view.trailingAnchor).isActive = true
backgroundImageView.image = UIImage(named: "background")
view.sendSubviewToBack(backgroundImageView)
}
【问题讨论】:
-
您上面的代码专门禁用缩放,因为最小和最大缩放级别设置为 1.0。需要咖啡吗?
-
即使将值向上移动,它仍然显示“在展开可选值时意外发现 nil”
-
您的故事板中肯定有 IBOutlet 连接到正确的类?
-
场景链接到 ViewController。滚动视图放置在场景中,IBOutlet 在 ViewController 中被称为“scrollView”。图像视图放置在滚动视图内,并在 ViewController 中以 tylenol 的形式引用。
-
调用 viewdidload 方法并尝试设置 minimumZoomScale 时是否崩溃?
标签: ios swift xcode uiscrollview uiimageview