gpt4 book ai didi

ios - Swift 3 UIScrollview 不要求缩放

转载 作者:行者123 更新时间:2023-11-28 15:47:53 24 4
gpt4 key购买 nike

这让我抓狂!

我的 UIScrollView 基于 http://koreyhinton.com/blog/uiscrollview-crud.html为了使其程序化,所以在我的 ScrollView 中设置了一个容器 View 。但它平移,但不会缩放。

BinaryTreeViewController 类:UIViewController、UIScrollViewDelegate {

var scrollView: UIScrollView!
var containerView : UIView!

override func viewDidLoad() {
super.viewDidLoad()

let width:CGFloat = self.view.bounds.width
let height:CGFloat = self.view.bounds.height

scrollView = UIScrollView()
scrollView.delegate = self
scrollView.minimumZoomScale = 0.5
scrollView.maximumZoomScale = 2.0
scrollView.contentSize = CGSize(width: width*2, height: 2000)

scrollView.backgroundColor = .red
containerView = UIView()

scrollView.addSubview(containerView)
view.addSubview(scrollView)

containerView.isUserInteractionEnabled = true
scrollView.isUserInteractionEnabled = true
}

override func viewDidLayoutSubviews() {

super.viewDidLayoutSubviews()

scrollView.frame = view.bounds
containerView.frame = CGRect(x: 0, y: 0, width: scrollView.contentSize.width, height: scrollView.contentSize.height)
}



override func viewWillLayoutSubviews() {
//I create a view called "theView"
containerView.addSubview(theView)
}

以下函数在任何时候都不会触发

func update(zoomScale: CGFloat, offSet: CGPoint) {
scrollView.zoomScale = zoomScale
}

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

func scrollViewDidZoom(_ scrollView: UIScrollView) {
NSLog("scroll")
}

最佳答案

您真的不需要为此编写那么多代码。您可以在 Storyboard 中设置 ScrollView 所需的所有内容,并且只需要为要缩放的 View 设置导出。设置 Controller ,添加 ScrollView ,将委托(delegate)属性连接到 View Controller ,在 IB 中添加缩放 View 作为 subview 。

在类中,使 Controller 符合 UIScrollViewDelegate,并使用 viewForZooming,一个 scrollView 委托(delegate)方法。

class ViewController: UIViewController, UIScrollViewDelegate {

@IBOutlet weak var zoomer: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

func viewForZooming(in scrollView: UIScrollView) -> UIView? {
return zoomer
}
}

附言使用更新的资源进行学习,Ray Wenderlich、AppCoda 等 - 这是一个充满优质资源的大型网络,而且 Swift 一直在不断变化。

关于ios - Swift 3 UIScrollview 不要求缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42733967/

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