VFL-滚动视图自动布局

 1 #import "ViewController.h"
 2
 3 @interface ViewController ()
 4 {
 5     //控件scrollView
 6     UIScrollView *_scrollView;
 7     //scr 中的内容 view
 8     UIView *_scrContentView;
 9     //内容辅助 view 的作用
10     //1:用来存储显示 view
11     //2.为了更好的计算scrollView的contenSize
12
13 }
14 @end
15
16 @implementation ViewController
17
18 - (void)viewDidLoad {
19     [super viewDidLoad];
20     //1.创建scrollView
21     _scrollView = [[UIScrollView alloc] init];
22     _scrollView.backgroundColor = [UIColor orangeColor];
23     [self.view addSubview:_scrollView];
24     //2.设置 属性
25     _scrollView.translatesAutoresizingMaskIntoConstraints = NO;
26     /*
27     步骤3和4,确定scrollView的frame
28     */
29     //3.创建水平约束数组
30     NSArray *conScrHor = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_scrollView]-0-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(_scrollView)];
31     [self.view addConstraints:conScrHor];
32     //4.创建垂直方向约束数组
33     NSArray *conScrVor = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_scrollView]-0-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(_scrollView)];
34     [self.view addConstraints:conScrVor];
35
36     //5.创建scr内容辅助 view
37     _scrContentView = [[UIView alloc] init];
38     _scrContentView.backgroundColor = [UIColor yellowColor];
39     [_scrollView addSubview:_scrContentView];
40     _scrContentView.translatesAutoresizingMaskIntoConstraints = NO;
41
42     //6.获取屏幕宽度
43     //CGFloat screenWidth = [UIScreen mainScreen].bounds.size.width;
44
45     //7.创建内容辅助 view 的水平方向约束 不设置宽度
46     NSArray *consContentHor = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[_scrContentView]-0-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(_scrContentView)];
47     [_scrollView addConstraints:consContentHor];
48
49     //7.1 创建宽度约束
50     NSLayoutConstraint *conScrContentWidth = [NSLayoutConstraint constraintWithItem:_scrContentView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:_scrollView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0.0];
51     [_scrollView addConstraint:conScrContentWidth];
52
53     //8.创建内容辅助 view 的垂直方向约束
54     NSArray *consScrContentVor = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[_scrContentView]-0-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(_scrContentView)];
55     [_scrollView addConstraints:consScrContentVor];
56
57     //9.创建真正用来显示的view 红色的
58     UIView *redView = [[UIView alloc] init];
59     redView.backgroundColor = [UIColor redColor];
60     [_scrContentView addSubview:redView];
61     redView.translatesAutoresizingMaskIntoConstraints = NO;
62
63     //10.红色的 view 水平方向约束
64     NSArray *consRedHor = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[redView]-20-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(redView)];
65     [_scrContentView addConstraints:consRedHor];
66
67     //11.红色的view垂直方向约束
68     NSArray *consRedVor = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[redView(40)]-800-|" options:NSLayoutFormatAlignmentMask metrics:nil views:NSDictionaryOfVariableBindings(redView)];
69     [_scrContentView addConstraints:consRedVor];
70
71     /*
72     7和11 确定scrollView 的 contentSize
73     */
74     UIBarButtonItem *barBtn = [[UIBarButtonItem alloc] initWithTitle:@"ScrContentSize" style:UIBarButtonItemStyleDone target:self action:@selector(barBtnClicked)];
75     self.navigationItem.rightBarButtonItem = barBtn;
76
77
78     NSLog(@"scrContent:%@",NSStringFromCGRect(_scrContentView.frame));
79
80 }
81
82 -(void)barBtnClicked
83 {
84     NSLog(@"scr contentSize:%@",NSStringFromCGSize(_scrollView.contentSize));
85 }
86
87 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
88 {
89     NSLog(@"scr contentSize:%@",NSStringFromCGSize(_scrollView.contentSize));
90 }
91
92 - (void)didReceiveMemoryWarning {
93     [super didReceiveMemoryWarning];
94     // Dispose of any resources that can be recreated.
95 }
96
97 @end
时间: 2024-12-20 09:42:18

VFL-滚动视图自动布局的相关文章

Android零基础入门第61节:滚动视图ScrollView

原文:Android零基础入门第61节:滚动视图ScrollView 前面几期学习了ProgressBar系列组件.ViewAnimator系列组件.Picker系列组件和时间日期系列组件,接下来几期继续来学习常见的其他组件. 一.ScrollView概述 从前面的学习有的同学可能已经发现,当拥有很多内容时屏幕显示不完,显示不全的部分完全看不见.但是在实际项目里面,很多内容都不止一个屏幕宽度或高度,那怎么办呢?那就需要本节学习的ScrollView来完成. 在默认情况下,ScrollView只是

Cocos2d-X使用CCScrollView创建滚动视图

CCScrollView可以使游戏有滚动视图的效果,并且可以通过滚动视图切换游戏场景,滚动视图常用于游戏中选择关卡 实例1:使用CCScrollView创建一个简单的滚动视图 首先创建一个ScrollView类 然后在ScrollView.h中添加下面的代码 #ifndef __ScrollView_H__ #define __ScrollView_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC

UIScrollView 按页面滚动视图 UIPageControl

1.UIScrollView是可以滚动的view,UIView本?身不能滚动,子类UIScrollview拓展了滚动?方?面的功能. 2.UIScrollView是所有滚动视图的基类.以后的UITableView,UITextView等视图都是继承于该类. 3.UIScrollview主要专?长于两个?方?面: (1).滚动:contentSize?大于frame.size的时候,能够滚动. (2).缩放:?自带缩放,可以指定缩放倍数. UIScrollView滚动的相关属性 1.content

滚动视图性能优化的几种方式

目的: - 我们每次发布IOS时都会有一些新特性页面,当然还有广告条都会用到滚动视图.那么如何性能优化呢?目前就我所知有两种方案,一种就是常用的2-3张图片重复利用,另一种就是今天主要讲的利用UICollectionView来做. - 今天就做一个新特性页面为例 步骤: 方法一:利用UICollectionView 1.UICollectionView继承UIScrollView,我们要用滚动视图,肯定会用到ScrollView,而如何我们把collectionView中的一个Item当作滚动视

滚动ScrollView---数组存放图片,设置3个滚动视图,用来滑动多张图片

问题描述:循环滑动切换n多张图片,不事先加载完成,现用现取. 解题思路:将要显示的图片存放在数组中,设置3个滚动视图,左边视图,正在显示的视图,右边视图 实现代码如下: //  ViewController.m #import "ViewController.h" #define kWith self.view.frame.size.width #define kHeight self.view.frame.size.height @interface ViewController (

UI开发----UIScrollView和UIPageControl简单模拟滚动视图

//  Created By 郭仔 //================================================== 师傅领进门,修行在个人!自学才是王道! //================================================== UIScrollView: UIScrollView * scrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(20, 50, 200, 200)]

UGUI 滚动视图

滚动视图是常用的UI控件之一,它是由多个基本控件组合而成.如图 ================================================================================== 两个必备控件简单介绍: Scroll Rect控件: Horizontal 是否支持水平滚动 Vertical 是否支持上下滚动 MovementType 移动的方式: 感觉设置都没什么用处Unrestricted 自由的Elastic 有弹性的Clamped 夹紧的

Cocos2d-X 使用CCTableView创建滚动视图

CCTableView和CCScrollView一样用于创建滚动视图,CCTableView的功能也比较多,创建比较麻烦 实例1:使用CCTableView创建滚动视图 首先创建一个TableView类 TableView.h中的代码 #ifndef __TableView_H__ #define __TableView_H__ #include "cocos2d.h" #include "cocos-ext.h" USING_NS_CC; USING_NS_CC_

滚动视图 UIScrollView

UIScrollView:提供可以显?示?大于应?用窗??口的内容功能的控件, ?用户可以通过?手势使内容滚动和缩放,从?而查 看全部内容. 初始化一个UIScrollView的对象 1 UIScrollView *_scroll=[[UIScrollView alloc] init]; 首先介绍一下UIScrollView这个类的基本属性 属性:  contentSize     滚动视图的内容大小 //UIScrollView能够滚动的前提是contentsize大于大的本身尺寸.即大于fr

Android视图之滚动视图

滚动视图(ScrollView)是当需要显示的信息一个屏幕显示不下时使用的控件. 1.ScrollView概述 ScrollView由FrameLayout派生,同样位于android.widget包下.ScrollView类实际上是一个帧布局,一般情况下,其中的控件是按照线性进行布局的,用户可以对其进行滚动,以达到在屏幕中显示更多信息的目的. 默认情况下,ScrollView只是为其他组件添加垂直滚动条,如果应用需要添加水平滚动条,,则可借助于另一个滚动条视图来实现.ScrollView与Ho