私はUIControl
から継承したカスタムスライダーを持ってできるようにするuicontrol内でIsEnabledのオーバーライド。はまだタッチ
私のコントロールでは、isEnabled
の状態にはまだ触れることができますが、isEnabled
を上書きするとUIControl
もfalseに設定されているようです。
どんなに私は何をすべきか私はこれを防ぐように見えることはできません。すべてのアイデア、または私は自分の国の別の名前を作成していますか(すなわちisBypassed
)?
class CustomSlider: UIControl {
private var _isEnabled: Bool = false
override public var isEnabled: Bool {
get { return _isEnabled }
set { setIsEnabled(newValue, animated: false }
}
public func setIsEnabled(_ isEnabled: Bool, animated: Bool) {
self._isEnabled = isEnabled
if animated {
//do the animation...
}
}
}
P.S.私はこれをしたい理由を不思議に思っている場合は無効なコントロールがまだ触れたとき自分自身を識別することができるはずですので、それはだ:それは簡単に点灯しますが、その後すぐに、それは更なる相互作用を可能にするために有効にする必要があることを示す離れて死にます。
私は、すべてのユーザーとの対話をブロックしたい場合は、私がisUserInteractionEnabled
を使用します。
することができますあなた自身が「自分自身を特定する」という意味を少し広げてください。それには、それに応じて別の組み込み方法があるかもしれません。 –
ありがとうございます。詳細を追加しました。 – MH175
あなたは反対を試みましたか?無効化されたコントロールは無効になっていると主張できますが、有効なコントロールはユーザーの操作が無効になっても自分自身を識別できる必要があります。 * isEnabled *の代わりに* isUserInteractionEnabled *をオーバーライドしようとしましたか? – dfd