菜鸟教程小白 发表于 2022-12-11 16:55:44

ios - 更改 UIView 框架结束触摸事件


                                            <p><p>我有一个自定义 <code>UIView</code> </p>

<pre><code>self.commentView = [[ loadNibNamed:@&#34;commentView&#34; owner:self options:nil] firstObject];
self.commentView.userInteractionEnabled = YES;
CGRect frame = CGRectMake(0, [bounds].size.height, [bounds].size.width, 52);
;
;
</code></pre>

<p>添加手势识别器</p>

<pre><code>UITapGestureRecognizer *tap = [initWithTarget:self action:@selector(tapping)];
;
</code></pre>

<p>自定义 View 包含一个 <code>UITextView</code>。我注册键盘通知并在键盘出现时更改我的自定义 View 框架</p>

<pre><code>[ addObserver:self
                                       selector:@selector(keyboardAppeared:)
                                             name:UIKeyboardDidShowNotification
                                           object:nil];
</code></pre>

<hr/>

<pre><code> - (void)keyboardAppeared:(NSNotification*)notificationn{
   NSDictionary* keyboardInfo = ;
   NSValue* keyboardFrameBegin = ;
   CGRect keyboardFrameBeginRect = ;

   CGRect frame = self.commentView.frame;
   frame.origin.y = (keyboardFrameBeginRect.origin.y - frame.size.height);

   [UIView animateWithDuration:.1f animations:^{
         ;
         self.commentView.alpha = 1.0f;
   }];

   keyboard = keyboardFrameBeginRect.origin.y;

}
</code></pre>

<p>在我的“点击”方法中,我有一个 <code>NSLog</code>。当我最初添加 <code>commentView</code> 并点击 View 时,触摸工作并调用 <code>tapping</code>。在显示键盘并将 <code>commentView</code> 的框架移到键盘上方后,不再调用“轻敲” - 触摸事件停止。 </p>

<p>我还有一个关于何时关闭键盘的通知。在这种方法中,我将框架设置回原来的样子。触摸再次开始起作用。</p>

<p><strong>编辑</strong>
这就是我添加 <code>commentView</code> 的方式。上面的 <code>addSubview:</code> 正在测试:</p>

<pre><code> - (void) showCommentView{
   CGRect frame = CGRectMake(0, [bounds].size.height-52, [bounds].size.width, 52);
   ;
   if (!) {
         ;
   }
   ;

   CGRect framer = ;
   NSLog(@&#34;SUPERVIEW: %f&#34;, framer.origin.y);
}
</code></pre>

<p>我注释掉 <code>commentTextView becomeFirstResponder</code> 行,然后点击就可以了。如果我离开这一行,将调用 <code>keyboardAppeared</code> ,并且一旦框架更改,点击就不再起作用。所以我认为 <code>commentView</code> 的框架实际上并没有改变。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>设置<code>commentView</code>的<code>color</code>。我认为当键盘出现时您的commentView 框架没有正确调整大小。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 更改 UIView 框架结束触摸事件,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38258055/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38258055/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 更改 UIView 框架结束触摸事件