iOS

[ iOS ] isEnabled와 isUserInteractionEnabled 비교

Forest Yun 2022. 4. 12. 16:06
728x90

공부한 내용을 글로 정리한 글입니다.

 

 

 

 

문제

isEnabledisUserInteractionEnabled는 무슨 차이가 있을까?

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

1. isEnabled 란?

  • 해당 컨트롤이 활성화 상태인지 여부를 나타내는 Bool타입의 프로퍼티
  • UIController의 인스턴스 프로퍼티.
  • UIController는 UIButton의 부모 클래스이다.
  • true : 해당 컨트롤을 활성화한다.
  • false : 해당 컨트롤을 비활성화한다.
  • 활성화된 컨트롤은 사용자와의 상호작용을 할 수 있다.

 

 

 

 

2. isUserInteractionEnabled 란?

  • 사용자 이벤트를 무시하고 이벤트 큐에서 제거할지 여부를 결정하는 Bool 타입의 프로퍼티이다.
  • UIView의 인스턴스 프로퍼티.
  • UIView는 UIController의 부모 클래스이다.
  • true : 원래대로 View에 이벤트가 전달된다. 
  • false : View에 의도된 touch, press, keyboard, and focus 이벤트가 무시되고 이벤트 큐에서 제거된다.
  • 일반적으로 애니메이션이 작동되는 동안, 이 프로퍼티에 설정되 값과 관계없이 애니메이션에 해당하는 모든 View의 사용자 상호작용이 일시적으로 비활성화된다.
  • 애니메이션이 구성될 때 allowUserInteraction 을 지정함으로써 위 액션을 비활성화시킬 수 있다.

 

 

 

 

 

 

 

3.  isEnabled와 isUserInteractionEnabled 비교

 

  isEnabled isUserInteractionEnabled
공통점 사용자 상호작용에 대해서 활성화 여부를 설정하는 프로퍼티
차이점 isEnabled는 UIControl(UIButton의 슈퍼클래스)의 인스턴스 프로퍼티라서 컨트롤과 관련된 이벤트이다.

isEnabled는 기능뿐만 아니라 시각적으로도 true/fasle 차이가 있다. false인 경우 버튼이 회색으로 보인다.
isUserInteractionEnabled는 UIView(UIControl의 슈퍼클래스)의 인스턴스 프로퍼티라서 view와 관련된 이벤트이다.

isUserInteractionEnabled는 기능적으로는 똑같지만 false인 경우에도 view에 시각적으로 차이가 없다.
+ false일 때 따로 alpha 값을 설정해줌으로 색의 차이를 둘 수 있다.

isUserInteractionEnabled는 UIView의 인스턴스 프로퍼티이기 때문에 버튼 이외에도 모든 View에서 사용할 수있다.

예) UIImageView에 UITapGesture와 isUserInteractionEnabled를 사용해 이미지 클릭 이벤트를 구현할 수 있다.

 

https://88yhtserof.tistory.com/41?category=954886 

 

[ iOS ] UIImageView 클릭 시 화면 전환 - UITapGestureRecognizer

공부한 내용을 정리한 글입니다. 문제 UIImageView 클릭 시 화면 전환되도록 구현 UIImageView를 클릭해 화면전환 액션을 수행하게 하기 위해서는 UITapGestureRecogniger를 사용해야 한다. https://88yhtserof.ti..

88yhtserof.tistory.com

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

isEnabled
isUserInteractionEnabled
isEnabled와 isUserInteractionEnabled의 차이
728x90