簡體   English   中英

類型“ viewController”不符合協議“ PathMenuDelegate”

[英]type “viewController” does not conform protocol “PathMenuDelegate”

  • 我剛剛開始學習敏捷。
  • 我安裝了Cocoapod,並嘗試查看是否可以實施。
  • 我真的不知道該如何解決此問題,其余的代碼將在下面提供。

     override func viewDidLoad() { super.viewDidLoad() let menuItemImage = UIImage(named: "bg-menuitem")! let menuItemHighlitedImage = UIImage(named: "bg-menuitem-highlighted")! let starImage = UIImage(named: "icon-star")! let starMenuItem1 = PathMenuItem(image: menuItemImage, highlightedImage: menuItemHighlitedImage, contentImage: starImage) let starMenuItem2 = PathMenuItem(image: menuItemImage, highlightedImage: menuItemHighlitedImage, contentImage: starImage) let starMenuItem3 = PathMenuItem(image: menuItemImage, highlightedImage: menuItemHighlitedImage, contentImage: starImage) let starMenuItem4 = PathMenuItem(image: menuItemImage, highlightedImage: menuItemHighlitedImage, contentImage: starImage) let starMenuItem5 = PathMenuItem(image: menuItemImage, highlightedImage: menuItemHighlitedImage, contentImage: starImage) let items = [starMenuItem1, starMenuItem2, starMenuItem3, starMenuItem4, starMenuItem5] let startItem = PathMenuItem(image: UIImage(named: "bg-addbutton")!, highlightedImage: UIImage(named: "bg-addbutton-highlighted"), contentImage: UIImage(named: "icon-plus"), highlightedContentImage: UIImage(named: "icon-plus-highlighted")) let menu = PathMenu(frame: view.bounds, startItem: startItem, items: items) menu.delegate = self menu.startPoint = CGPointMake(UIScreen.mainScreen().bounds.width/2, self.view.frame.size.height - 30.0) menu.menuWholeAngle = CGFloat(M_PI) - CGFloat(M_PI/5) menu.rotateAngle = -CGFloat(M_PI_2) + CGFloat(M_PI/5) * 1/2 menu.timeOffset = 0.0 menu.farRadius = 110.0 menu.nearRadius = 90.0 menu.endRadius = 100.0 menu.animationDuration = 0.5 // 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. } } 
  • 委托協議(PathMenuDelegate)_如何實現將下面顯示的其余代碼放入viewDidLoad中

      func pathMenu(menu: PathMenu, didSelectIndex idx: Int) func pathMenuDidFinishAnimationClose(menu: PathMenu) func pathMenuDidFinishAnimationOpen(menu: PathMenu) func pathMenuWillAnimateOpen(menu: PathMenu) func pathMenuWillAnimateClose(menu: PathMenu) 
    
class ViewController: UIViewController{
    override func viewDidLoad() {
        super.viewDidLoad()
       ~~~
        menu.delegate = self
        self.view.addSubview(menu)
    }
}
extension ViewController: PathMenuDelegate {
    func didSelect(on menu: PathMenu, index: Int) {
        print("Select the index : \(index)")
    }
    func willStartAnimationOpen(on menu: PathMenu) {
        print("Menu will open!")
    }

    func willStartAnimationClose(on menu: PathMenu) {
        print("Menu will close!")
    }

    func didFinishAnimationOpen(on menu: PathMenu) {
        print("Menu was open!")
    }

    func didFinishAnimationClose(on menu: PathMenu) {
        print("Menu was closed!")
    }
}

您無法將這些代碼放入viewDidLoad中。

使相應的viewController符合PathMenuDelegate

並開始鍵入協議功能,您將獲得有關它們的建議

您要詢問的所有內容,都可以在這里看到作者的示例代碼:非常簡單明了。 這些委托人的功能僅用於處理庫中的事件。 而且這里的示例只是打印出一些東西來向您顯示“您的代碼有效”。

https://github.com/pixyzehn/PathMenu/blob/master/PathMenu-Sample/PathMenu-Sample/ViewController.swift

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM