ios - 如何通过设置autolayout让一个视图悬浮在scroll view上方?
高洛峰
高洛峰 2017-04-17 16:23:41
[iOS讨论组]

今天看autolayout文档,其中有一个例子,就是让一个scroll view的子视图相对于scroll view的父视图固定,从而达到不随着scroll view滚动而滚动的效果。但是自己尝试了下,发现完全没用啊,该滚动还是滚动。视图结构如下:

- controller view
    - scroll view
        - content view
        - floating view

其中floating view 有两个相对于controller view的约束,float view的宽高是固定值。

PS:一般情况下我会认为是自己写错了,但是我在文档的开头部分看到这样一句话:

It’s also not possible to cross any views that have a bounds transform (such as a scroll view). You can think of such views as barriers—there’s an inside world and an outside world, but the inside cannot be connected to the outside by constraints.

大意是说,(虽然很多时候约束可以横跨视图结构),但是对于bounds会发生变形的视图,例如scroll view是不行的。可是,在后面又专门列举了一个上述的例子,我糊涂了。

在PS:我知道可以将floating view添加给controller view,置于scroll view上方一样可以达到悬浮的目的,但我先知道用autolayout行不行。

下面是关于这个例子的文档节选,由于苹果在九月份更新了文档,所以只能截图给大家看了,请看create anchored views inside a sroll view那一段




高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
高洛峰

我试了,这可以实现啊。

伊谢尔伦

就算floating view是scroll view的子view,但是只要你的floating位置的约束是相对于controller view的,floating view就不会跟着scroll view滚动的。

UIScrollView *scrollView = [[UIScrollView alloc] init];
scrollView.backgroundColor = [UIColor greenColor];
[self.view addSubview:scrollView];

UIView *view = [[UIView alloc] init];
view.backgroundColor = [UIColor redColor];
[scrollView addSubview:view];

[scrollView makeConstraints:^(MASConstraintMaker *make) {
    make.leading.equalTo(self.view).with.offset(100);
    make.trailing.equalTo(self.view).with.offset(-100);
    make.height.mas_equalTo(100);
    make.top.equalTo(self.view).with.offset(100);
}];

[view makeConstraints:^(MASConstraintMaker *make) {
    make.leading.equalTo(self.view).with.offset(120);
    make.width.and.height.equalTo(@20);
    make.top.equalTo(self.view).with.offset(120);
}];

scrollView.contentSize = CGSizeMake(1000, 1000);
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号