问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

uiscrollview怎么添加约束

发布网友 发布时间:2022-10-12 01:28

我来回答

1个回答

热心网友 时间:2023-10-16 20:04

用xcode创建一个新工程,然后打开ViewController.m文件

我们在ViewController的viewDidLoad方法里创建一个UIScrollView并且加上约束
代码如下:
//创建scrollView
UIScrollView * scrollView=[[UIScrollView alloc] init];
scrollView.translatesAutoresizingMaskIntoConstraints=NO;
scrollView.backgroundColor=[UIColor lightGrayColor];
[self.view addSubview:scrollView];
//给它加上约束 使它距屏幕的上左下右都是20像素
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[scrollView]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(scrollView)]];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[scrollView]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(scrollView)]];
效果如图

我要再创建两个view 这两个view的大小和scrollview的大小一样大,使scrollview能横向滚动
代码如下:
//添加约束 (非常重要)
//1.水平方向排开 宽度相等 上下边缘对齐(等高)
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[redView]-0-[blueView(==redView)]-0-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(redView,blueView)]];
//2.垂直方向一直撑到父视图的
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[redView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(redView)]];
//到了这里 还没完 如果是普通的view 那就搞定了 但是scrollview不一样还得添加下面两个约束
//3.redview的宽高 和scrollview的宽高相等的约束

[scrollView addConstraint:[NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0]];

[scrollView addConstraint:[NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0]];

整个viewdidload全部代码如下:
- (void)viewDidLoad
{
[super viewDidLoad];

//创建scrollView
UIScrollView * scrollView=[[UIScrollView alloc] init];
scrollView.translatesAutoresizingMaskIntoConstraints=NO;
scrollView.backgroundColor=[UIColor lightGrayColor];
[self.view addSubview:scrollView];
//给它加上约束 使它距屏幕的上左下右都是20像素
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-20-[scrollView]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(scrollView)]];

[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[scrollView]-20-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(scrollView)]];

//创建redView
UIView * redView=[[UIView alloc] init];
redView.backgroundColor=[UIColor redColor];
redView.translatesAutoresizingMaskIntoConstraints=NO;
[scrollView addSubview:redView];

//创建blueView
UIView * blueView=[[UIView alloc] init];
blueView.backgroundColor=[UIColor blueColor];
blueView.translatesAutoresizingMaskIntoConstraints=NO;
[scrollView addSubview:blueView];

//添加约束 (非常重要)
//1.水平方向排开 宽度相等 上下边缘对齐(等高)
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[redView]-0-[blueView(==redView)]-0-|" options:NSLayoutFormatAlignAllTop | NSLayoutFormatAlignAllBottom metrics:nil views:NSDictionaryOfVariableBindings(redView,blueView)]];
//2.垂直方向一直撑到父视图的
[scrollView addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[redView]-0-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(redView)]];

//3.redview的宽高 和scrollview的宽高相等的约束

[scrollView addConstraint:[NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeWidth multiplier:1.0 constant:0]];

[scrollView addConstraint:[NSLayoutConstraint constraintWithItem:redView attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:scrollView attribute:NSLayoutAttributeHeight multiplier:1.0 constant:0]];

}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人大政协辅助岗是什么 政务辅助人员是干什么 政府辅助人员是什么 努比亚的海拔什么意思 北非努比亚现在怎么样了啊 相邻权的相关法律 梦见老公离世了什么预兆 梦见自己老公走掉 你出轨后 怎么操作才没被发现? 评评怎么造句 蓝精灵名字 大地飞歌是指什么? 大地飞歌打一生肖 做道路标线工程有预付款吗 休闲快三歌曲里有一句歌词:星星出来太阳落 阿妹在家中等哥哥。这歌的歌名是什么? 男女对唱 高高山上一头牛歌词 高高山上一头牛歌词是什么 真心求减肥方法,见得越快越好 真心想减肥啊, 说真心的,我是真心想减肥,但是好饿怎么办 有真心减肥的吗 求助,真心想减肥,减重40斤需要多久 六年级上册语文17课课件 本人22岁身高1.73体重200斤肚子太胖,真心减肥 想问问大家,异地恋男朋友是真的减不下肥还是不愿意为女朋友减肥,如果真心减肥的话要多久才会有效果? 真心想减肥。有没有什么简单好做的方法 求法饼的制作 法饼的制作方法 导游词幽默开场白-导游词 怎么登yy帐号 急!急!广州广播电视大学花都分校的同学请进。学校附近有什么地方住宿方便便宜的不?一般住一晚多少钱? 如何编程发现钢筋的碰撞和相交 ios新特性Unwind Segue怎么使用 IOS开发以及Tab Bar使用讲解 IOS在继承UITabBar怎么写跳转 iOS中图形为什么旋转动画的起点位置不对??求大神解答 从上海怎么去楠溪江?急!~自己开车 永嘉县乌牛镇东蒙工业区到楠溪江地图 后弦的《海口》 歌词 开放式厨房油烟怎么解决 你知道吗 人什么鸡什么成语 四字成语人什么鸡 英语四级听力部分是一样的吗? 五彩的梦作文800字 五彩梦作文 以《人生的五彩梦》为话题写一篇作文 五彩缤纷的梦想作文 那时五彩斑斓的梦初一作文 七夕礼物送女友创意 到店里diy一个抱枕需要多长时间 给最好的两个姐妹的生日礼物我想自己做,请问大家有没有什么简单又好看,或者实用的小手工制作方法?