IOS 에서 UIControl 깊이 분석
다음은 UIControl 대상.
UIControl 은 UIView 의 하위 클래스 이자 UIResponder 의 하위 클래스 입 니 다.UIControl 은 UIButton,UISwitch,UITextField 등 컨트롤 의 부모 클래스 로 그 자체 에 도 속성 과 방법 이 포함 되 어 있 지만 UIControl 류 를 직접 사용 할 수 없습니다.하위 클래스 가 모두 사용 해 야 할 방법 만 정의 합 니 다.
UIControl 대상 은 새로운 이벤트 처리 체 제 를 사용 하여 이전 절 에서 직접 처리 한 터치 이 벤트 를 간단 한 조작 으로 전환 시 켜 사용자 가 컨트롤 에 접근 하 는 구체 적 인 방식 에 관심 을 가 질 필요 가 없다.터치 이벤트 가 UIControl 대상(응답 자 체인 에서 파견)에 도착 한 후,UIResponsder 의 방법(예 를 들 어 touch Began:withEvent)에서 UIControl 은 표준 터치 이 벤트 를 특수 한 컨트롤 이벤트 로 변환 합 니 다.간단 한 이 해 는 UIControl 이 복잡 한 터치 이 벤트 를 간단 하고 사용 하기 쉬 운 컨트롤 이벤트 로 봉 한 것 입 니 다.예 를 들 어 UIControl 대상 을 통 해 처리 한 후 단 추 를 누 른 이 벤트 는 터치 스크린 의 전체 조작 과정 을 판단 하지 않 고 컨트롤 이벤트 로 봉 인 됩 니 다.
예 를 들 어 단 추 를 누 르 는 이벤트:UIControlEventTouchUpInside
우리 가 알 아야 할 것 은 UIControl 이 먼저 터치 이 벤트 를 컨트롤 이벤트 로 바 꾸 고 수신 방 이 있 는 동작 으로 바 꾸 는 것 입 니 다.우 리 는 두 번 째 변환 코드 를 만 들 면 컨트롤 이 벤트 를 목표 가 있 는 동작 으로 바 꾸 는 것 입 니 다.
addTarget:action:for Control Events 사용 하기
이것 은 UIControl 의 한 방법 입 니 다.지정 한 컨트롤 대상 에 이 벤트 를 추가 합 니 다.예 를 들 어:
[controlObj addTarget:recepientObj action @selector(method) froControlEvents : UIControlEvents];
controlObj 는 이벤트 에 응답 할 컨트롤 대상 입 니 다.
매개 변수 receientObj 는 메 시 지 를 어디로 보 내 는 지,일반적으로 self 입 니 다.보통 예화 컨트롤 대상 의 컨트롤 러 를 말 합 니 다.
action 뒤에 선택 기 가 있 습 니 다.이 사건 에 응답 해 야 하 는 방법 을 표시 합 니 다.사건 이 무엇 을 하 는 지 사실은 이 방법 에 적 혀 있 습 니 다.
마지막 으로 이벤트 형식 입 니 다.어떤 이벤트 에 응답 하 는 지 표시 합 니 다.
사용 하 는 두 가지 방식:
1.코드 통과
코드 에 단 추 를 새로 만 든 다음 단추 대상 에 addTarget:action:for Control Events 방법 을 추가 한 다음 응답 방법 을 작성 하면 됩 니 다.
2.가시 화 를 통 해 실현
IB 에서 control 키 를 누 르 고 마 우 스 를 누 르 면 단추 에서 해당 하 는.h 파일 로 드래그 하면 IBAction 방법 이 생 깁 니 다.이 방법 에서 이벤트 논 리 를 작성 하면 이벤트 응답 을 완성 할 수 있 습 니 다.이런 방법 은 첫 번 째 방법 보다 직관 적 이 고 개발 효율 도 높 습 니 다.
나중에 IOS 의 다른 컨트롤 도 사용 하지만 대체적으로 원 리 는 같 습 니 다.그 다음 에 새로운 지식 을 결합 하여 이 컨트롤 을 사용 합 니 다.컨트롤 에 대한 사용자 정의 스타일 등 을 포함 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swift의 패스트 패스Objective-C를 대체하기 위해 만들어졌지만 Xcode는 Objective-C 런타임 라이브러리를 사용하기 때문에 Swift와 함께 C, C++ 및 Objective-C를 컴파일할 수 있습니다. Xcode는 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.