2017-02-06 9 views
0

iOSで非常に単純な機能に悩まされています。iOSでキーボードを開いたときに送信ボタンが機能しない

スクロールビューのサブビュー内にあるtextFieldからデータを送信しようとしています。私が何かを書こうとするとすぐにキーボードが閉じられ、キーボードが開いたボタンが応答を停止すると、ボタンがヒットしたときにボタンがアクションを実行しています。

VideoViewController:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    controller.videoID = videoID; 
    controller.channelID = channelID; 

    controller.view.frame = self.commentView.bounds; 

    [self.commentView addSubview:controller.view]; 

    // [self.scrollView addSubview:controller.sendBtn]; 

    [self addChildViewController:controller]; 

    [controller didMoveToParentViewController:self]; 
} 

CommentViewController:

-(void)viewWillAppear:(BOOL)animated 
{ 
    [super viewWillAppear:animated]; 

    controller.videoID = videoID; 
    controller.channelID = channelID; 

    controller.view.frame = self.commentView.bounds; 

    [self.commentView addSubview:controller.view]; 

    // [self.scrollView addSubview:controller.sendBtn]; 

    [self addChildViewController:controller]; 

    [controller didMoveToParentViewController:self]; 
} 

-(void)keyboardWillShow:(NSNotification *)notification 
{ 

    CGSize keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size; 

    [UIView animateWithDuration:0.3 animations:^{ 
    CGRect f = self.view.frame; 
    f.origin.y = -keyboardSize.height+100; 
    self.sendView.frame = f; 
    }]; 
    _sendBtn.userInteractionEnabled = YES; 
} 

-(void)keyboardWillHide:(NSNotification *)notification 
{ 
    [UIView animateWithDuration:0.3 animations:^{ 
    CGRect f = self.view.frame; 
    f.origin.y = 0.0f; 
    self.sendView.frame = f; 
    }]; 
} 
-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    [commentTextField resignFirstResponder]; 
    return YES; 
} 
- (BOOL)touchesShouldCancelInContentView:(UIView *)view 
{ 
    return ![view isKindOfClass:[UIButton class]]; 
} 

この上で何かを提案してください。 ありがとうございます。

+1

私にあなたのコードを送ってもらえますか?私はあなたのコードの実際の問題は何かを示します。 –

+0

私もコードを更新しました。 – Coder

+1

をチェックしてください。あなたのコードはうまくいくかもしれませんが、キーボードショーで自動的にテキストフィールドのアニメーションを行うためにIQKeyboardManagerクラスを使用する必要があります。これはあなたの問題を解決するのに役立つかもしれません。 [リンク](https://github.com/hackiftekhar/IQKeyboardManager) –

答えて

0

この問題に直面した

解決策を見つけるまでに2日かかりました。 ScrollVIew/Viewのcancel touchesフラグをfalseに設定する必要があります。

実際には、スクロールビューのタッチが有効で、ボタンの操作が許可されていません。

これは、送信ボタンが機能しない唯一の理由です。

+0

OK。これは問題になる可能性があります。私は間違いなくこれを試してみます。ありがとう – Coder

関連する問題