gpt4 book ai didi

iOS - 将 View 锚定到屏幕顶部,状态栏后面

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:02 25 4
gpt4 key购买 nike

我有一个带有默认状态栏的 CollectionViewController,它全部嵌入到 NavigationController 中。

我正在尝试重现一种效果,在这种效果中,我将一个 View 锚定在屏幕顶部,因为我的 navController 是完全透明的,我的状态栏也是透明的,但是不知何故,当我将我的 View 锚定到 topAnchor 它保持与 NavigationController bottomAnchor 的剪辑,因为它“认为”屏幕的顶部是 navController 的底部。

在将 View 锚定到顶部之后,我成功地绕过了这个问题,我给它一个负的 topPadding,现在它就是我想要的位置。

我知道有一种方法可以将布局扩展到顶部屏幕,但我想不通。

你能给我一个提示吗?

我正在尝试这个:

desired

我明白了:

result

空白是状态栏高度+NavigationController高度

谢谢

最佳答案

好吧,这会将我的 UIImageView 固定到屏幕顶部……在导航栏和状态栏下方。与 Collection View 应该没有任何不同:

NSLayoutConstraint *top = [NSLayoutConstraint
constraintWithItem:imageView
attribute:NSLayoutAttributeTop
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeTop
multiplier:1
constant:0];

编辑:抱歉,我在一个 Obj-C 项目中工作...这里是 Swift 中的:

    let img = UIImage(named: "Man")
let imageView = UIImageView(image: img)
imageView.translatesAutoresizingMaskIntoConstraints = false

self.view.addSubview(imageView)

imageView.widthAnchor.constraint(equalToConstant: 200.0).isActive = true
imageView.heightAnchor.constraint(equalToConstant: 200.0).isActive = true

imageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true

imageView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true

enter image description here

并且...这里还有一个 Collection View (很难用普通的屏幕截图来分辨):

    self.view.backgroundColor = .white

let img = UIImage(named: "Man")
let imageView = UIImageView(image: img)
imageView.translatesAutoresizingMaskIntoConstraints = false

self.view.addSubview(imageView)

imageView.widthAnchor.constraint(equalToConstant: 200.0).isActive = true
imageView.heightAnchor.constraint(equalToConstant: 200.0).isActive = true

imageView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true

imageView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true

let layout = UICollectionViewFlowLayout()
let cv = UICollectionView(frame: CGRect.zero, collectionViewLayout: layout)
cv.backgroundColor = .clear

cv.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "defaultCell")
cv.dataSource = self

cv.translatesAutoresizingMaskIntoConstraints = false
self.view.addSubview(cv)

cv.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.9).isActive = true
cv.heightAnchor.constraint(equalToConstant: 300.0).isActive = true

cv.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true

cv.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true

enter image description here

关于iOS - 将 View 锚定到屏幕顶部,状态栏后面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44137096/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com