itsource

UI 레이블에서 터치 이벤트 처리 및 IBAction에 연결

mycopycode 2023. 7. 16. 13:19
반응형

UI 레이블에서 터치 이벤트 처리 및 IBAction에 연결

좋아요, 그래서 저는.UILabel"시작하려면 탭"의 일부 기본 텍스트를 표시하는 인터페이스 작성기에서 작성되었습니다.

사용자가 탭할 때UILabelIBAction 메서드를 트리거합니다.-(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

반응형