我正在加载包含UIWebView的单元格的集合视图。我的UICollectionView的 Activity 指示器停止旋转和UIWebView加载之间存在时间间隔。我试图获取加载何时开始(最终何时停止)的参考,以添加另一个 Activity 指示器UI。我不知道该怎么做,因为我的UIWebView在我的CollectionViewCell中,而不在我的CollectionView中,换句话说,我不能使用委托方法并将自己设置为collectionView的VDL中的委托?我的CollectionViewCell代码:

 import UIKit
import WebKit

class SearchCollectionViewCell: UICollectionViewCell {


    @IBOutlet weak var webView: UIWebView!

    @IBOutlet weak var spinner: UIActivityIndicatorView!

    func webViewDidStartLoad(_ webView: UIWebView) {
        print("we're loading")
    }


}

最佳答案

您需要在单元格中实现UIWebViewDelegate并将单元格设置为delegate,然后在webViewDidStartLoad方法中,您将收到通知

import UIKit
import WebKit

class SearchCollectionViewCell: UICollectionViewCell {


    @IBOutlet weak var webView: UIWebView!

    @IBOutlet weak var spinner: UIActivityIndicatorView!

    override func awakeFromNib() {
        super.awakeFromNib()
        self.webView.delegate = self
        // Initialization code
    }

}

extension SearchCollectionViewCell : UIWebViewDelegate
{
    public func webViewDidStartLoad(_ webView: UIWebView) {
        debugPrint("Start Loading")
    }
}

希望这可以帮助

09-06 01:00