Christoph Drescher
Christoph Drescher

Reputation: 67

Button Autolayout programmatically?

Hey guys I want to position my Button at the lower part of the Screen but I don't get the correct code. The button is too small, too big, at the right or left corner,... but It should be centred in the middle of the lower screen.

I tried it with these codes:

nextButton.translatesAutoresizingMaskIntoConstraints = false
        
        nextButton.centerXAnchor.constraint(equalTo: view.centerXAnchor)
        nextButton.centerYAnchor.constraint(equalTo: view.centerYAnchor)
        nextButton.widthAnchor.constraint(equalTo: view.widthAnchor, constant: 97)
        nextButton.heightAnchor.constraint(equalTo: view.heightAnchor, constant: 50)

or

backButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 20).isActive = true
       backButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -20).isActive = true
       backButton.heightAnchor.constraint(equalToConstant: 50).isActive = true
       backButton.centerYAnchor.constraint(equalTo: view.centerYAnchor).isActive = true
        

Can someone tell me what to do to make it work? I thought with the topAnchor it would be really easy:(

Upvotes: 2

Views: 54

Answers (2)

ANTRIKSH VERMA
ANTRIKSH VERMA

Reputation: 363

The problem is that you are using centerYAnchor instead of bottomAnchor

Replace

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

with

let spacingConstant = 10.0
nextButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: -spacingConstant)

Upvotes: 2

Shehata Gamal
Shehata Gamal

Reputation: 100503

This will position it in bottom center of screen

nextButton.translatesAutoresizingMaskIntoConstraints = false
    
NSLayoutConstraint.activate([
    nextButton.centerXAnchor.constraint(equalTo: view.centerXAnchor),
    nextButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant:-20),
    nextButton.widthAnchor.constraint(equalToConstant: 50),
    nextButton.heightAnchor.constraint(equalToConstant: 50) 
])

Upvotes: 2

Related Questions