自定义动作控制Swift 3.0

时间:2017-08-07 23:38:25

标签: ios swift xcode custom-controls rating

我在https://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ImplementingACustomControl.html使用Apples的文档创建了自定义评级控件。我已经能够成功地将它添加到另一个视图。我现在正在尝试获取一个动作事件,比如评级动作事件的值更改,在我添加了此自定义控件的新视图中。我们怎么做到这一点?

我尝试使用endTrackingWithTouch,然后在新视图中调用valueChanged,我已将此评级置于其中但无法使其正常工作。

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

我基本上希望做的是,在新的视图控制器中,我已经放置了这个评级控制,我有一个跟踪更改评级值的方法。非常感谢任何指针。感谢

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。通过本教程,我能够弄明白。它不是星级评级控件,但它是一个使用UIStackView的控件。

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

Apple教程创建自定义控件的方式令人惊讶。 Apple教程告诉您从UIStackView继承。相反,您需要从UIControl继承,创建UIStackView,然后将UIStackView实例添加为子视图。

为了能够调用IBActions,您可以在RatingControl中的适当位置添加sendActions(for:.valueChanged)。

然后您应该能够控制+单击并从故事板拖动到您的代码,就像您控制任何其他控件一样,然后为您的IBAction选择Value Changed操作。