Добавить кнопку в правую часть экрана

#ios #swift #uibutton

#iOS #swift #uibutton

Вопрос:

Я UIButton добавил в левую часть экрана. Я добавил это следующим образом:

 let screenSize: CGRect = UIScreen.main.bounds
let menuButtonSize: CGSize = CGSize(width: 44, height: 44)
func confiureCloseButton() {
        let button = UIButton(frame: CGRect(origin: CGPoint.zero, size: menuButtonSize))
        button.setImage(UIImage(named: "icon_close"), for: UIControl.State.normal)
        button.center = CGPoint(x: 50, y: 61)
        button.layer.zPosition = 1
        button.addTarget(self, action: #selector(closeButtonAction), for: .touchUpInside)

        self.view.addSubview(button)
    }
  

Как я могу добавить другую кнопку в правую часть?

Комментарии:

1. Таким же образом, но с другим origin.x значением.

2. @rmaddy — origin: CGPoint.zero Равно 0,0. Как мне это сделать для правой стороны?

3. Измените 1-е 0 число на нужное, чтобы оно было там, где вы хотите. А еще лучше, используйте ограничения.

4. @rmaddy Как мне отредактировать первый 0? Должен ли я перейти с CGPoint.zero на CGPoint(x: screenSize.width-44, y: 0) ?

5. Используйте ограничения. Намного лучше, чем кодирование фреймов.

Ответ №1:

Вы можете попробовать

 firstBu.translatesAutoresizingMaskIntoConstraints = false 
self.view.addSubview(firstBu)  
secondBu.translatesAutoresizingMaskIntoConstraints = false 
self.view.addSubview(secondBu)  
NSLayoutConstraint.activate([ 
    firstBu.leadingAnchor.constraint(equalTo: self.view.leadingAnchor,constant:50), 
    firstBu.topAnchor.constraint(equalTo: self.view.safeAreaLayoutGuide.topAnchor,constant:61), 
    firstBu.widthAnchor.constraint(equalToConstant: 44), 
    firstBu.heightAnchor.constraint(equalToConstant: 44),  
    secondBu.leadingAnchor.constraint(equalTo: self.firstBu.trailingAnchor,constant:20), 
    secondBu.centerYAnchor.constraint(equalTo: self.firstBu.centerYAnchor), 
    secondBu.widthAnchor.constraint(equalToConstant: 44), 
    secondBu.heightAnchor.constraint(equalToConstant: 44)
])      
  

Ответ №2:

Предполагая, что вы хотите, чтобы кнопка была зеркальным отображением левой кнопки:

 func configureRightButton() {
    let rightButton = UIButton(frame: CGRect(origin: CGPoint.zero, size: menuButtonSize))
    let frameWidth = view.frame.width

    rightButton.center = CGPoint(x: frameWidth - 50, y: 61)
    rightButton.layer.zPosition = 1

    view.addSubview(rightButton)
}
  

Комментарии:

1. Вы не должны ничего основывать на размере экрана. Основывайте ее на размере представления контроллера просмотра. Использование ограничений еще лучше.