iOS UIButton - Difference between UIButton setUserInteractionEnabled and setEnabled

前端 未结 3 1593
一个人的身影
一个人的身影 2021-02-13 19:44

Wait!!!:
I know that you may think this question have been asked and answered several time before. But I can guarantee you that this questi

3条回答
  •  悲&欢浪女
    2021-02-13 20:34

    They are nearly the same. userInteractionEnabled is a property of UIView that toggles whether the view receives any user touches. enabled is a property of UIControl (which is a subclass of UIView and a superclass of UIButton) and has the same effect. One difference is that UIKit controls may draw themselves differently depending on their enabled state, which isn't the case for the abstract UIView.

    Okay, then why?

    Since UIControl subclasses inherit both, why are there two almost-the-same properties? Why don't controls just drop the idea of "enabled" and draw themselves differently based on their userInteractionEnabled state?

    At least one reason is that during animation, user interaction is disabled on UIViews. It would be wrong for controls to draw themselves as greyed out while they are animated. So at least during animation, the two properties have distinct meanings.

提交回复
热议问题