如何将某物限制在中心顶部的锚点上?

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

在下面的代码中,我试图将某些东西限制在uiscreen中心点的顶部。我在下面添加了一张我所要找的东西的图片。下面的代码是我试过的,它把它钉在屏幕的中心点,并把对象放在屏幕的中间。

import UIKit

class ViewController: UIViewController {
    var box = UIImageView()

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        box.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(box)
        box.backgroundColor = .systemPink
        NSLayoutConstraint.activate([

            box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier : 0.25),
            box.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier : 0.25),
            box.centerXAnchor.constraint(equalTo: view.centerXAnchor ),
            box.centerYAnchor.constraint(equalTo: view.centerYAnchor),


        ])
    }


}

enter image description here

swift constraints anchor center nslayoutconstraint
1个回答
0
投票

你需要删除 centerYAnchor 拘泥 box 并设置 bottomAnchor 而不是。

移除。box.centerYAnchor.constraint(equalTo: view.centerYAnchor)

增加: box.bottomAnchor.constraint(equalTo: view.centerYAnchor)

纠正约束。

NSLayoutConstraint.activate([
    box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier: 0.25),
    box.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier: 0.25),
    box.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    box.bottomAnchor.constraint(equalTo: view.centerYAnchor)
])

enter image description here


0
投票

移除这个。

box.centerYAnchor.constraint(equalTo: view.centerYAnchor )

增加这个

box.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 20) //Add padding accordingly


0
投票

按原样添加下面的解决方案......它将帮助你完美运行......!!!

    override func viewDidLoad() {
        super.viewDidLoad()

        box.translatesAutoresizingMaskIntoConstraints = false
        view.addSubview(box)
        box.backgroundColor = .systemPink
        NSLayoutConstraint.activate([

            box.heightAnchor.constraint(equalTo: view.heightAnchor, multiplier : 0.25),
            box.widthAnchor.constraint(equalTo: view.widthAnchor, multiplier : 0.25),
            box.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor, constant: 16),
            box.centerXAnchor.constraint(equalTo: view.centerXAnchor )
            ])
        // Do any additional setup after loading the view.
    }

注意:-你添加的是 box.centerYAnchor.constraint(equalTo: view.centerYAnchor) 这个约束,由于这个约束,你无法将你的盒子放在中心位置。

© www.soinside.com 2019 - 2024. All rights reserved.