2016-07-29 2 views
0

기본적으로 화면에서 버튼을 움직이는 코드가 있는데 단추가 특정보기 위에 놓여 있으면 해당 단추를보기에서 제거해야합니다.하위 클래스 코드에서 viewController의 단추를 삭제 하시겠습니까?

self.removeFromSuperview()는 어쩌면 작동 할 것이라고 생각했는데, 왜냐하면 superView는 버튼이 실행되는 시점에 버튼이 어떤 뷰에 기반을두고 있는지 알았 기 때문입니다. 그러나 나는 모든 것을 정확하게 이해하지 못한다고 생각합니다.

내 touchesEnded func 내에서이 작업을 수행 할 수있는 방법이 있습니까?보기에서 단추가 누락되었는지 확인해야합니까? 아니면 다른보기에 NSNotification을 보내고 처리해야합니까?

나는 atm을 출력하는 것으로 작동하고 삭제는 일어나지 않습니다.

답변

0

단추 포인터에 removeFromSuperview (으)로 전화해야합니다.

myButton.removeFromSuperview()

또한, 메인 스레드에서 removeFromSuperview를 호출하고 있는지 확인하십시오.

0

질문을 올바르게 이해하고 있다면 화면에 UIButton이 있고 사용자가 드래그 할 수 있습니다. 특정 위치로 드래그하면 (휴지통이라고 부름), 제거하려고합니다.

self.removeFromSuperView()가 수행중인 superview에서 자신의보기 컨트롤러를 제거하고 싶지는 않을 것입니다. 대신 touchesEnded에서 다음을 시도해보십시오.

override func touchesEnded(touches: Set, withEvent event: UIEvent) { 
    super.touchesEnded(touches, withEvent: event) 

    let touch: UITouch = touches.first as! UITouch 

    if touch.view.isKindOfClass(UIButton) { 
     touch.view.removeFromSuperview() 
    } 


} 
관련 문제