在开发的时候,经常会遇到一个界面不能够将需求内容展示完整,,这个时候就需要用到ScrollView.个人学习,简要整理了一下,步骤如下:
1.首先在我们的Controller自带的View里面添加一个ScrollView,点开下面设置约束的4个按钮的第3个,约束设置距离父试图的距离为(0,0,0,0),并且更新.如下图所示。
2.在ScrollView上面添加一个View成为ScrollView的子视图,点开下面设置约束的4个按钮的第3个,设置约束距离ScrollView的距离为(0.0.0.0),这里不急更新视图,因为更新了话这个View就会缩小到(0,0)位置.如下图所示。
3.这个时候会发现报错了,暂时不用管它,继续添加约束,选择新添的View,点开下面设置约束的4个按钮的第二个,选择 Horizontal Center in Container, 并打上对勾, (如果想要左右滑动就选择 Vertical Center in Container, 同时实现左右上下则全不选)
5.此时报错还在,继续添加一个约束后它就会消失了,再次打开下面设置约束的4个按钮的第3个 选择Height 设置你想要的560.(这个值根据实际情况设置,如果想要左右滑动就选择 Width, 同时实现左右上下就全部设置)
6.设置完成以后发现错误不见了,只有一个黄色的警告,这是由于Frame没有更新导致的,我们来更新下Frame.(Alt+commond加+号)
->
7.接下来我们就可以在这个ScrollView的子视图View上面来添加控件了。 设置约束的时候是相对于父试图View的。切记高度值560是随便设置的,实际情况根据个人.
然后,在做登录界面的时候用到了ScrollView,会遇到一种情况,当键盘谈出来后点击其他空白处键盘不会消失,这是因为此时点击的是在ScrollViewh上面,不会响应
touchesBegan这个方法,这个时候就需要设置一下scrollView的点击时间了,如下:
scrollView 本身继承 了 touch 的响应 事件,要从新自定义 scrollView 的 响应事件。
遵循代理<UIGestureRecognizerDelegate>
所以添加一个手势事件:
-(void)addGestureRecognizer
{
UITapGestureRecognizer * sigleTap = [[UITapGestureRecognizer alloc]initWithTarget:self action:@selector(handleTapGesture)];
sigleTap.numberOfTapsRequired = 1;//单击一次响应事件方法
//singleTap.delegate = self;
//singleTap.cancelsTouchesInView = NO;
[myScrollView addGestureRecognizer:sigleTap];
}
//点击了scrollView之后需要处理的事件写在这里面
-(void)handleTapGesture
{
[myTextField resignFirstResponder];
}
最后,在viewDidLoad里面调用[self addGestureRecognizer]方法就可以了.
如果还有关这方面的知识,希望看客们留下来让我了解了解,谢谢;