ScrollView 在 StatusBar 下启动

问题描述 投票:0回答:1

在scrollView的顶部,我有一个imageView,我希望它位于屏幕的顶部,但无论我尝试什么,我都找不到将其放在屏幕顶部的方法。它从状态栏下方开始。 这是它的样子:

enter image description here enter image description here

这就是我想要的

enter image description here

以下是限制:

        NSLayoutConstraint.activate([
        scrollView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
        scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
        scrollView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
        scrollView.bottomAnchor.constraint(equalTo: view.bottomAnchor),

        contentView.leadingAnchor.constraint(equalTo: scrollView.leadingAnchor),
        contentView.topAnchor.constraint(equalTo: scrollView.topAnchor),
        contentView.trailingAnchor.constraint(equalTo: scrollView.trailingAnchor),
        contentView.bottomAnchor.constraint(equalTo: scrollView.bottomAnchor),
        contentView.widthAnchor.constraint(equalTo: scrollView.widthAnchor),
        
        
        imageView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor),
        imageView.topAnchor.constraint(equalTo: contentView.topAnchor),
        imageView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor),
        imageView.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.45), ]) }

我尝试过但没有解决:

        scrollView.contentInsetAdjustmentBehavior = .never

有一种解决方案有效,但我认为这不是最好的方法:

            scrollView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: -130),

当我向滚动视图的顶部锚添加一个常量时,它解决了问题。然而,在其他屏幕上,例如 iPad 或 iPhone X,我需要相应地调整这个常数。我不确定计算状态栏的高度然后动态调整约束是否是最好的方法。我觉得一定有更简单的方法。

ios swift autolayout scrollview
1个回答
0
投票

scrollView.topAnchor.constraint(等于:view.safeAreaLayoutGuide.topAnchor),

这意味着滚动视图的顶部是状态栏的底部。如果你不想这样,就不要这么说。相反,将滚动视图的顶部固定到其超级视图的顶部,并且 also 配置自动内容插入调整,以便图像的顶部最初不会自动放置在状态栏的底部:

/// ... scrollView.topAnchor.constraint(equalTo: view.topAnchor), /// ... scrollView.contentInsetAdjustmentBehavior = .never
    
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.