2017-08-07 13 views
1

私はAppleのドキュメントhttps://developer.apple.com/library/content/referencelibrary/GettingStarted/DevelopiOSAppsSwift/ImplementingACustomControl.htmlを使ってカスタムレーティングコントロールを作成しました。私は正常に別のビューに追加することができました。私は今、このカスタムコントロールを追加した新しいビューで、アクションイベントを取得しようとしています。どうすればこのことができますか?カスタムアクションコントロールスウィフト3.0

endTrackingWithTouchを使用して、この評価を行った新しいビューでvalueChangedを呼び出しましたが、動作させることができませんでした。私は基本的に行うには期待しています何

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

は、私は、この評価contolを置いた新しいビューコントローラでは、私は定格値を変更を追跡する方法を持っている、ということです。何か指摘していただければ幸いです。ありがとう

答えて

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の値の変更アクションを選択します。