UILabel에서 터치 이벤트를 처리하고 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에서 상속됩니다. 모든 UIresponder 객체는 터치 이벤트를 처리 할 수 있습니다. 따라서 (UIlabel 포함) 뷰에 대해 아는 클래스 파일에서 다음을 구현하십시오.
-(void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event;
인터페이스 빌더에서 UILabel의 태그 값을 설정하십시오. touchesBegan 메소드에서 터치가 발생하면 태그가 후속 뷰의 태그 값을 확인합니다.
UITouch *touch = [touches anyObject];
if(touch.view.tag == MY_TAG_VAL)
label.text = @"new text";
IBlet 접두사로 UILabel 인스턴스 변수를 인터페이스 빌더의 UILabel과 클래스 파일의 코드를 연결합니다.
IBOutlet UILabel *label;
그런 다음 인터페이스 빌더에서 수 있습니다.
UIButton을 사용하여 투명하게 만들 수 있습니다 (예 : 이미지가없는 사용자 정의 유형). UILabel을 추가 할 수 있습니다 (중앙). 그런 다음 일반 버튼 이벤트를 연결합니다.
스위프트 3
IBOutlet이 있습니다.
@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
}
'IT' 카테고리의 다른 글
| 이미지가 더 작아도 UITableViewCell의 ImageView를 고정 크기로 만드는 방법 (0) | 2020.08.18 |
|---|---|
| C #에서 컴퓨터 경고 어떻게 만들 수 있습니까? (0) | 2020.08.18 |
| Moment.js : 날짜 사이의 날짜 (0) | 2020.08.18 |
| Eclipse 코드 줄 수 (0) | 2020.08.18 |
| 목록을 쉼표로 구분하는 가장 명확한 방법은 무엇입니까? (0) | 2020.08.18 |