이것은 매우 이상합니다 - 어떤 이유로 인해 UIView
이 (한번은 UITextView
을 탭하면), UITapGesture
이 실행되지 않습니까? 예 : 보기가 애니메이션으로 표시되고 UITextView
이 활성 상태이면보기의 아무 곳이나 두드리면 애니메이션보기가 닫히지 않습니까? 그러나 그것이 애니메이트되기 전에 뷰의 아무 곳이나 탭하면, UITapGesture
은 잘 실행됩니다. 왜 이럴까요?UIView가 애니메이션 처리 된 후에 Obj-C - UITapGestureRecognizer가 작동하지 않습니까?
ViewController.m 일단
- (void)viewDidLoad {
[super viewDidLoad];
self.replyField.delegate = self;
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
}
-(void)dismissKeyboard {
[self animateTextView:NO];
}
- (void)textViewDidBeginEditing:(UITextView *)textView
{
[self animateTextView: YES];
}
- (void)textViewDidEndEditing:(UITextView *)textView
{
[self animateTextView:NO];
}
- (void) animateTextView:(BOOL) up
{
const int movementDistance = 206; // tweak as needed
const float movementDuration = 0.3f; // tweak as needed
int movement= movement = (up ? -movementDistance : movementDistance);
NSLog(@"%d",movement);
[UIView beginAnimations: @"anim" context: nil];
[UIView setAnimationBeginsFromCurrentState: YES];
[UIView setAnimationDuration: movementDuration];
self.view.frame = CGRectOffset(self.inputView.frame, 0, movement);
[UIView commitAnimations];
}
난 당신이 링크를 살펴한다고 생각 https://stackoverflow.com/questions/1126726/how- to-make-a-uitextfield-move-up-when-keyboard-is-present – trungduc
광산은 UITextField가 아니라 UITextView입니다 ... 작동이 다르게 @trungduc – Brittany
죄송합니다, 형편 없음. 하지만 그들은 UiView이고 UIView 애니메이션을 사용하고 있다고 생각합니다. 어쩌면 작동 할 수도 있습니다. – trungduc