在StoryBoard中约束scrollView,以及scrollView的点击事件

 

在开发的时候,经常会遇到一个界面不能够将需求内容展示完整,,这个时候就需要用到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]方法就可以了.

如果还有关这方面的知识,希望看客们留下来让我了解了解,谢谢;

posted on 2016-04-27 15:37  一叶封城  阅读(448)  评论(0编辑  收藏  举报

导航