UI 레이블에서 터치 이벤트 처리 및 IBAction에 연결
좋아요, 그래서 저는.UILabel
"시작하려면 탭"의 일부 기본 텍스트를 표시하는 인터페이스 작성기에서 작성되었습니다.
사용자가 탭할 때UILabel
IBAction 메서드를 트리거합니다.-(IBAction)next;
라벨의 텍스트를 업데이트하여 새로운 내용을 알려줍니다.
이를 통해 메소드에서 레이블로 연결을 드래그한 다음 버튼과 같이 내부 터치업을 선택할 수 있다면 정말 편리할 것입니다.하지만 아아, 시가는 없습니다.
그래서 어쨌든, 제 질문은, 제가 서브클래스를 해야 할까요?UILabel
이 일을 성공시키기 위해?아니면 라벨 위로 단추를 끌어서 0% 불투명하게 만들 수 있는 방법이 있습니까?아니면 제가 놓치고 있는 더 간단한 해결책이 있을까요?
확인해 보십시오.
UILabel *label = ...
label.userInteractionEnabled = YES;
UITapGestureRecognizer *tapGesture =
[[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(labelTap)];
[label addGestureRecognizer:tapGesture];
비결은 사용자 상호 작용을 활성화하는 것입니다.
UILabel은 UIResponder에서 상속되는 UIView에서 상속됩니다.모든 UI 응답기 개체는 터치 이벤트를 처리할 수 있습니다.따라서 보기(UI 레이블 포함)를 알고 있는 클래스 파일에서 다음을 구현합니다.
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event;
인터페이스 작성기에서 UILabel의 태그 값을 설정합니다.터치에서 터치가 발생하면 태그가 속한 뷰의 태그 값을 확인합니다.
UITouch *touch = [touches anyObject];
if(touch.view.tag == MY_TAG_VAL)
label.text = @"new text";
IBOutlet 접두사로 UILabel 인스턴스 변수를 선언하여 클래스 파일의 코드를 인터페이스 작성기의 UILabel 개체와 연결합니다.
IBOutlet UILabel *label;
그런 다음 인터페이스 빌더에서 연결할 수 있습니다.
UIButton을 사용하여 투명하게 만들 수 있습니다. 즉, 이미지가 없는 사용자 지정 유형을 만들고 UIButton에 가운데에 UIBabel을 추가할 수 있습니다.그런 다음 일반 버튼 이벤트를 연결합니다.
스위프트 3
IBU렛이 있습니다.
@IBOutlet var label: UILabel!
사용자 상호 작용을 활성화하고 제스처 인식기를 추가할 수 있습니다.
label.isUserInteractionEnabled = true
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(userDidTapLabel(tapGestureRecognizer:)))
label.addGestureRecognizer(tapGesture)
그리고 마지막으로, 수도꼭지를 잠급니다.
func userDidTapLabel(tapGestureRecognizer: UITapGestureRecognizer) {
// Your code goes here
}
언급URL : https://stackoverflow.com/questions/3169798/handling-touch-event-in-uilabel-and-hooking-it-up-to-an-ibaction
'itsource' 카테고리의 다른 글
두 셀을 분할한 결과의 SUM(SUM PRODUCT 대신 분할) (0) | 2023.07.16 |
---|---|
시작 페이지 초기화 중 Oracle SQL Developer 문제 (0) | 2023.07.16 |
Mongodb에서 ISO 날짜 형식 지정 (0) | 2023.07.16 |
Firebase Cloud Messaging용 API KEY는 어디에서 찾을 수 있습니까? (0) | 2023.07.16 |
Python + 장고 페이지 리디렉션 (0) | 2023.07.16 |