2017-08-07 195 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操作。