2017-08-07 194 views
1

我創建了一個自定義評級控制,使用蘋果的文檔https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ImplementingACustomControl.html。我已經能夠成功地將它添加到另一個視圖。我現在試圖在添加了這個自定義控件的新視圖中獲得一個動作事件,比如說評級動作事件的值更改。我們應該怎麼做 ?自定義操作控制Swift 3.0

我試圖在新視圖中使用endTrackingWithTouch,然後在新視圖中調用valueChanged,我已經放置了該評級但無法使其正常工作。

override func endTrackingWithTouch(touch: UITouch, withEvent event: UIEvent) { 
    // return the rating here . ? 
} 

什麼,我基本上是我希望做的是,在我把這個等級控逆變新的視圖控制器,我有跟蹤變化的評價值的方法。將不勝感激任何指針。謝謝

回答

1

我遇到了同樣的問題。按照本教程,我可以弄明白。它不是星級控制,但是它是一個使用UIStackView的控件。

https://cocoacasts.com/how-to-create-a-custom-control-using-a-bitmask/

蘋果教程將創建一個自定義的控制方式是一種錯誤的出奇。 Apple教程告訴您從UIStackView繼承。相反,您需要從UIControl繼承,創建UIStackView,然後將UIStackView實例添加爲子視圖。

爲了能夠調用IBActions,您可以在RatingControl的相應位置添加sendActions(for:.valueChanged)。

然後,您應該可以像控制任何其他控件一樣控制+單擊並從故事板拖動到您的代碼,然後爲您的IBAction選擇Value Changed操作。