首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么子元素不填写父元素呢?

为什么子元素不填写父元素呢?
EN

Stack Overflow用户
提问于 2022-04-16 17:20:24
回答 1查看 24关注 0票数 -1

有一个橙色背景的scrollView,它有一个白色背景的图像,一个灰色标签和一个按钮。ScrollView填充整个屏幕,包括状态栏。我怎样才能使图像也进入状态栏,而不被附加到它的底部?

代码语言:javascript
运行
复制
NSLayoutConstraint.activate([
            scrollView.topAnchor.constraint(equalTo: view.topAnchor),
            scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
            scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
            scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor),

            image.topAnchor.constraint(equalTo: scrollView.topAnchor),
            image.leadingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.leadingAnchor),
            image.trailingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.trailingAnchor),
            image.heightAnchor.constraint(equalToConstant: 100),

            label.topAnchor.constraint(equalTo: image.bottomAnchor),
            label.leadingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.leadingAnchor),
            label.trailingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.trailingAnchor),
            label.heightAnchor.constraint(equalToConstant: 1000),

            button.topAnchor.constraint(equalTo: label.bottomAnchor),
            button.leadingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.leadingAnchor),
            button.trailingAnchor.constraint(equalTo: scrollView.safeAreaLayoutGuide.trailingAnchor),
            button.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor)

        ])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-16 21:09:59

到你最喜欢的搜索引擎去搜索UIScrollView contentLayoutGuide frameLayoutGuide

为了使内容滚动,需要对滚动视图的.contentLayoutGuide进行约束。

要正确调整内容的大小--例如填充滚动视图的宽度,因此我们只有垂直滚动--您需要对滚动视图的.frameLayoutGuide进行引导和尾随约束。

将您的约束条件与此进行比较:

代码语言:javascript
运行
复制
    NSLayoutConstraint.activate([
        scrollView.topAnchor.constraint(equalTo: view.topAnchor),
        scrollView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
        scrollView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor),

        image.topAnchor.constraint(equalTo: scrollView.contentLayoutGuide.topAnchor),
        
        image.leadingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.leadingAnchor),
        image.trailingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.trailingAnchor),
        image.heightAnchor.constraint(equalToConstant: 100),
        
        // make the image view the Width of the scroll view
        image.widthAnchor.constraint(equalTo: scrollView.frameLayoutGuide.widthAnchor),
        
        label.topAnchor.constraint(equalTo: image.bottomAnchor),
        label.leadingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.leadingAnchor),
        label.trailingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.trailingAnchor),
        label.heightAnchor.constraint(equalToConstant: 1000),

        // make the label the Width of the scroll view
        label.widthAnchor.constraint(equalTo: scrollView.frameLayoutGuide.widthAnchor),

        button.topAnchor.constraint(equalTo: label.bottomAnchor),
        button.leadingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.leadingAnchor),
        button.trailingAnchor.constraint(equalTo: scrollView.contentLayoutGuide.trailingAnchor),

        // make the button the Width of the scroll view
        button.widthAnchor.constraint(equalTo: scrollView.frameLayoutGuide.widthAnchor),
        
        button.bottomAnchor.constraint(equalTo: scrollView.contentLayoutGuide.bottomAnchor)
        
    ])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71895975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档