버튼처럼 작동하는 UIView 클래스를 만들려고합니다. 나는 그것을 완전히 프로그래밍 방식으로하고 싶다. 나는 버튼을 표시 할 수 있지만 제대로 클릭하지는 않습니다. 내보기 제어기 구현 파일에서UIView 하위 클래스의 대리자 및 제스처 인식기
- (void)handlePress:(UILongPressGestureRecognizer *)sender{
if(sender.state == UIGestureRecognizerStateBegan){
NSLog(@"in handlePress");
}
}
I 가지고 :
가- (void)viewDidLoad
{
[super viewDidLoad];
self.button = [[buttonclass alloc] initButton];
[self.view addSubview: self.button];
UILongPressGestureRecognizer *singlePress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handlePress:)];
[self.button.buttonView addGestureRecognizer:singlePress];
}
(버튼의 인스턴스 변수 인 제 클래스 구현 파일에서
난 다음뿐만 아니라 초기화 방법을 클래스 버튼 클래스와 buttonView는 버튼의 서브 뷰일뿐입니다)
저는 문제가 줄 안에 있는지 꽤 확신합니다 :
UILongPressGestureRecognizer *singlePress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handlePress:)];
[self.button.buttonView addGestureRecognizer:singlePress];
이 줄이 단추 초기화 함수 또는보기 컨트롤러 구현 파일 내에 있어야하는지 확실하지 않습니다. 다음 행을 추가해야합니까?
singlePress.delegate = self;
은 그 줄을 추가 시도하지만 난 어디에 넣어 모르는 오류가 delegate
및 self
(가) 같은 종류 아니라는 것을 말하고있다. 그럼에도 불구하고 동작에 GestureRecognizer를 연결하려고하거나 UIView 단추에 GestureRecognizer를 연결하려고 할 때 무언가 잘못되었습니다.
도움이 될 것입니다. 감사합니다. 좋은 하루 되세요.
입니까? – JiuJitsuCoder
아니요 UIView의 하위 클래스입니다. –
아래의 @ Apurv의 대답을 참조하십시오. 그 이유는 이것이 내가 말하는 것이기도하기 때문입니다. 또한 UIButton 또는 UIControl의 서브 클래 싱을 살펴보고 필요한 메서드를 재정의하는 것이 좋습니다. 모든 것을 손으로 코딩하지 않고도 많은 기능을 사용할 수 있습니다. – JiuJitsuCoder