我正在制作一个普通视图,用户可以在其中更新他们的个人资料。我按照以下步骤制作了该视图
- 创建了一个新的
UIViewController
带有 xib 文件
- Added a
UIScrollView
在超级视图中
- 添加了近9个
UITextField
和 1 个小UIWebView
- 满足自动布局约束,例如顶部
UITextField
将具有顶部、左侧、右侧和高度约束,并且以下所有内容均相同
控制但最后UITextField
有上、左、右、下和高度
限制。
现在所有约束都已应用并满足,但是当我运行视图然后尝试通过拖动滚动时UITextField
那么滚动视图不滚动,但如果我通过从除UITextField
然后它滚动起来非常好。谁能告诉我主要问题是什么?
注意:除了设置 xib 文件之外,还没有任何代码。
此链接上提供了示例项目https://www.dropbox.com/s/7oqry8yzd9twnp1/TestScroll.zip?dl=0
重写 UIScrollViewtouchesShouldCancelInContentView
方法将解决这个问题。
根据苹果的touchesShouldCancelInContentView被调用之前
如果触摸已经传递到子视图,则开始滚动
的滚动视图。如果返回 NO,则触摸将继续
传递到子视图并且不会发生滚动。
默认情况下,如果视图是一个,则此方法返回 NOUIControl
。因此 UIControls 不会发生滚动。
如果我们从此方法返回 YES,触摸将不会传递到子视图,因此滚动将会发生。
所以重写UIScrollViewtouchesShouldCancelInContentView
喜欢关注
@interface MyScrollView : UIScrollView
@end
@implementation MyScrollView
- (BOOL)touchesShouldCancelInContentView:(UIView *)view{
return YES;
}
@end
NOTE: touchesShouldCancelInContentView
方法仅在我们设置时调用canCancelContentTouches
属性为 YES
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)