菜鸟教程小白 发表于 2022-12-12 11:43:00

ios - 触摸 UIScrollView 内的 UITextField 可防止滚动


                                            <p><p>我在 <code>UIScrollView</code> 内有一堆 <code>UITextFields</code>,当用户尝试向上或向下滚动时,如果初始触摸发生在 <code>UIScrollView</code> 内code>UITextField</code>,该文本字段成为第一响应者(在 touch down inside 事件中)并防止滚动。有没有办法告诉 <code>UITextField</code> 仅在内部事件的修饰时开始编辑?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您应该继承 UIScrollView 并尝试通过覆盖 <code>touchesShouldCancelInContentView:</code> 来做不同的事情。如果您返回 YES,那么它应该始终滚动,但您将永远无法编辑文本字段。如果当触摸在文本字段之外时返回 YES,它可能会起作用。可能需要一些技巧来解决这个问题,因为触摸对象没有发送到 <code>touchesShouldCancelInContentView</code>。您可能需要在其他点捕获触摸对象并设置一个属性,表明它已超出文本字段。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 触摸 UIScrollView 内的 UITextField 可防止滚动,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/17065407/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/17065407/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 触摸 UIScrollView 内的 UITextField 可防止滚动