gpt4 book ai didi

ios - scrollViewDidScroll 没有被调用(我设置了委托(delegate)!)

转载 作者:搜寻专家 更新时间:2023-11-01 06:56:05 24 4
gpt4 key购买 nike

情况:我正在创建一个 imageGallery,它是我以模态方式呈现的 viewController。我已经以编程方式创建了它,我没有触及 Storyboard 。viewController 有一个包含 ImageView 的 scrollView,每个 ImageView 都有一个图像。我已经设置了 scrollView.isPagingEnabled = true 并且它按预期工作,我可以很好地滚动浏览图像。

问题:当 scrollView 滚动时,我正在尝试做一些工作。我已经设置了委托(delegate)(这似乎是人们在搜索答案时遇到的主要问题)但是 scrollViewDidScroll 永远不会被调用。我对正在发生的事情完全不知所措。我尝试了很多不同的事情,但现在已经没有想法了

@objc public class ImageGallery: UIViewController, UIScrollViewDelegate {

// MARK:- VARIABLES

/// An array of imageItems
@objc public var galleryItems = [ImageGalleryItem]()

/// The index of the image the gallery should start at
@objc public var startingIndex: NSNumber?

/// The UIImage to display if there is an error
@objc public var errorImage: UIImage?

/// The UIImage to display if the ImageGalleryItem doesn't have an image
@objc public var defaultImage: UIImage?

var scrollView: UIScrollView!

// MARK:- INITS

/// Initialiser for ImageGallery passing an array of ImageGalleryItems
///
/// - Parameter ImageGalleryItems: an array of ImageGalleryItems
@objc public init() {

self.defaultImage = UIImage(named: "default", in: getResourceBundle(), compatibleWith: nil)!
self.errorImage = UIImage(named: "error", in: getResourceBundle(), compatibleWith: nil)!
super.init(nibName:nil, bundle:nil)
}


@objc public required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder);
}


// MARK:- VIEW LIFECYCLES
override public func viewDidLoad() {

super.viewDidLoad()

configureScrollView()

self.scrollView.delegate = self
configureImageViews()
configurePresentationDefaults()
}


func configureScrollView() {

self.scrollView = UIScrollView(frame: view.frame)

self.scrollView.isPagingEnabled = true
self.scrollView.contentOffset = CGPoint(x: CGFloat(truncating: startingIndex ?? 0) * UIScreen.main.bounds.width, y: 0)

let imagesCount = galleryItems.count
let contentWidth = CGFloat(imagesCount) * UIScreen.main.bounds.width
self.scrollView.contentSize = CGSize(width: contentWidth, height: UIScreen.main.bounds.height)


if let toolbar = configureToolBar() {

view.addSubview(self.scrollView)
view.addSubview(toolbar)
view.bringSubviewToFront(toolbar)
}
}

private func scrollViewDidScroll(_ scrollView: UIScrollView) {
print("delegate")
}

更新

我错过了一个!

private func scrollViewDidScroll(_ scrollView: UIScrollView!) {
print("delegate")
}

成功了。

最佳答案

删除私有(private)关键字

func scrollViewDidScroll(_ scrollView: UIScrollView)

关于ios - scrollViewDidScroll 没有被调用(我设置了委托(delegate)!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53248288/

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