Как я могу центрировать кнопку на представлении программно - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь центрировать кнопку в нижней части вида, но она никогда не появляется. Единственный раз, когда это появляется, когда я раскомментирую takePhotoButton.frame. Как правильно это сделать?

 import UIKit
 import AVFoundation


class InputViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

       let photoPreviewImageView = UIImageView()
        photoPreviewImageView.frame = view.bounds
        photoPreviewImageView.backgroundColor = UIColor.green
        view.addSubview(photoPreviewImageView)

        let imageOfPhotoButton = UIImage(named: "smallcircle.circle.fill") as UIImage?
        let takePhotoButton = UIButton(type: .custom) as UIButton
        takePhotoButton.setImage(imageOfPhotoButton, for: .normal)
        //takePhotoButton.frame = CGRect(x: 10, y: 10, width: 60, height: 60) // It will appear with this code however i took it away because im trying to center it at the bottom of the screen
        takePhotoButton.center = view.center
        photoPreviewImageView.addSubview(takePhotoButton)

    }




}

Ответы [ 2 ]

1 голос
/ 05 марта 2020

Использовать привязки привязки. После добавления takePhotoButton установите их следующим образом:

takePhotoButton.bottomAnchor.constraint(equalTo: photoPreviewImageView.bottomAnchor).isActive = true
takePhotoButton.centerXAnchor.constraint(equalTo: photoPreviewImageView.centerXAnchor).isActive = true

Это позволит сделать вашу кнопку с тем же самым дном и центром, как ее контейнер.

0 голосов
/ 05 марта 2020

Добрый день, вы должны добавить ограничение.

import UIKit

class ViewController: UIViewController {

    var loginButton : UIButton = {
        let button = UIButton(type: .system)
        button.setTitle("Login", for: .normal)
        button.translatesAutoresizingMaskIntoConstraints = false
        button.backgroundColor = .red
        button.tintColor = .white
        return button
    }()




    override func viewDidLoad() {
        super.viewDidLoad()


        constraintsInit()
    }


    func constraintsInit(){
        view.addSubview(loginButton)
        NSLayoutConstraint.activate([
            loginButton.centerYAnchor.constraint(equalTo: self.view.centerYAnchor),
            loginButton.centerXAnchor.constraint(equalTo: self.view.centerXAnchor),
            loginButton.heightAnchor.constraint(equalToConstant: 30),
            loginButton.leadingAnchor.constraint(equalTo: self.view.leadingAnchor,constant: 30),
            loginButton.trailingAnchor.constraint(equalTo: self.view.trailingAnchor,constant: -30),
        ])
    }

}

На YouTube вы можете найти нескольких людей, которые объясняют, как создавать представления, используя только код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...