[Ios] UILabel이 탭에 응답하게하는 방법은 무엇입니까?



Answers

스토리 보드를 사용하는 경우 추가 코드없이 스토리 보드에서 전체 프로세스를 수행 할 수 있습니다. 스토리 보드에 라벨을 추가 한 다음 라벨에 탭 제스처를 추가합니다. 유틸리티 창에서 레이블에 대해 "사용자 상호 작용 사용"이 선택되어 있는지 확인하십시오. 스토리 보드의보기 컨트롤러 하단에있는 탭 제스처에서 ctrl 키를 누른 상태에서 ViewController.h 파일로 드래그하고 액션을 만듭니다. 그런 다음 ViewController.m 파일에 조치를 구현하십시오.

Question

UITextField보다 훨씬 빨리 UILabel을 만들 수 있다는 것을 발견했으며, 데이터 디스플레이 앱에 대해 UILabel을 사용할 계획입니다.

긴 이야기를 짧게 만들기 위해, 사용자가 UILabel을 두드려서 콜백에 응답하게하고 싶습니다. 그게 가능하니?

감사.




Swift 버전은 다음과 같습니다.

func addGestureRecognizerLabel(){
    //Create a instance, in this case I used UITapGestureRecognizer,
    //in the docs you can see all kinds of gestures
    let gestureRecognizer = UITapGestureRecognizer()

    //Gesture configuration
    gestureRecognizer.numberOfTapsRequired = 1
    gestureRecognizer.numberOfTouchesRequired = 1
    /*Add the target (You can use UITapGestureRecognizer's init() for this)
    This method receives two arguments, a target(in this case is my ViewController) 
    and the callback, or function that you want to invoke when the user tap it view)*/
    gestureRecognizer.addTarget(self, action: "showDatePicker")

    //Add this gesture to your view, and "turn on" user interaction
    dateLabel.addGestureRecognizer(gestureRecognizer)
    dateLabel.userInteractionEnabled = true
}

//How you can see, this function is my "callback"
func showDatePicker(){
    //Your code here
    print("Hi, was clicked")
}

//To end just invoke to addGestureRecognizerLabel() when
//your viewDidLoad() method is called

override func viewDidLoad() {
    super.viewDidLoad()
    addGestureRecognizerLabel()
}



단추에 여러 줄 문자를 사용하려면 여러 줄 문자가있는 UILabel 을 만들고 단추에 하위보기로 추가하십시오.

예 :

yourLabel=[Uilabel alloc]init];
yourLabel.frame=yourButtom.Frame;//(frame size should be equal to your button's frame)
[yourButton addSubView:yourLabel]



대신 UIButton을 사용하여 원하는 텍스트를 설정할 수 있습니다. 원하지 않는 버튼은 버튼처럼 보이지 않아도됩니다.




Swift 버전 : var tapGesture : UITapGestureRecognizer = UITapGestureRecognizer()

그런 다음 viewDidLoad() 내부에 다음을 추가합니다.

  let yourLbl=UILabel(frame: CGRectMake(x,y,width,height)) as UILabel!

    yourLbl.text = "SignUp"
    tapGesture.numberOfTapsRequired = 1
    yourLbl.addGestureRecognizer(tapGesture)
    yourLbl.userInteractionEnabled = true
    tapGesture.addTarget(self, action: "yourLblTapped:")



Links