ios - 更改 UIView 框架结束触摸事件
<p><p>我有一个自定义 <code>UIView</code> </p>
<pre><code>self.commentView = [[ loadNibNamed:@"commentView" 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(@"SUPERVIEW: %f", 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]