2013-03-19 5 views
8

UILabel과 UIImageView가 포함 된 사용자 정의 UIView가 있습니다. 내 UIView를 클릭 할 수있게하려면 어떻게해야합니까? 사용자가 UIView를 누르기 시작하면 언제든지 UIView의 배경을 변경하고 싶습니다. 사용자가 버튼을 위로 올리면 색이 바뀌어야합니다. 또한 click 이벤트를 처리 할 수 ​​있어야합니다.UIView를 클릭 가능하게 만드는 방법

+0

멍청한 질문에 대해 사과드립니다. iOS 개발에 익숙하지 않습니다. – zzzzzzzzzzzzzzzzzzzzzzzzzzzzzz

+0

나는 일반적으로 클릭 가능한 UIView를 흉내 내기 위해 제스처를 사용하여 수행합니다. –

+0

가능한 [UIView에 터치 이벤트를 추가하는 방법?] (http://stackoverflow.com/questions/4660371/how-to-add-a) - 터치 이벤트 - 투 - uiview) –

답변

20
-(void)addGestureRecogniser:(UIView *)touchView{ 

    UITapGestureRecognizer *singleTap=[[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(changecolor)]; 
    [touchView addGestureRecognizer:singleTap]; 
    DBLog(@"ADD GESTURE RECOGNIZER"); 
} 
-(void)changecolor{ 

    // do something 


} 

1`)이 그것을 클릭 할 수 있도록 U가 파라미터로서 뷰를 전달할 필요 코드이다.

4

스위프트 2.0 버전 :

// Add tap gesture recognizer to View 
let tapGesture = UITapGestureRecognizer(target: self, action: Selector("onClickOnView")) 
tapGesture.delegate = self 
self.view.addGestureRecognizer(tapGesture) 

func onClickOnView(){ 
    print("You clicked on view..") 
} 

스위프트 3.0 버전 UIGestureRecognizerDelegate을 구현하는 것을 잊지 마세요 :

// Add tap gesture recognizer to View 
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(clickView(_:))) 
tapGesture.delegate = self 
view.addGestureRecognizer(tapGesture) 

func clickView(_ sender: UIView) { 
    print("You clicked on view") 
} 
7

또 다른 방법은 후크하는 것입니다 일 스토리 보드/인터페이스 빌더를 통한 제스처 인식기.

매우 쉽고 코드를 사용하는 것보다 깨끗합니다.

다음은 제스처 인식기 설정에 대한 단계별 참조입니다. 여기에 위의 링크에서 단계 출력 함

https://developer.apple.com/library/ios/referencelibrary/GettingStarted/DevelopiOSAppsSwift/Lesson4.html#//apple_ref/doc/uid/TP40015214-CH6-SW1

을 : : 그냥 Gesture Recognizer 검색

  1. 드래그 장면에 Object library에서 탭 제스처 인식기 개체를, 그리고 상단에 배치 UIView.
  2. 식사에 제스처 인식기가 표시됩니다 (scene dock). Scene 도크는 First Responder, Exit 등이있는 스토리 보드의 View Controller 상단에 있습니다.
  3. Scene Dock의 제스처 인식기에서 코드 디스플레이로 Control 드래그하여 코드에 Tap Gesture Recognizer를 연결합니다. UIButton 액션을 위해 수행 대화 상자를 채 웁니다.
  4. 끝났습니다! : D
관련 문제