Как установить рамку динамически создаваемой кнопки в Swift 3.0 - PullRequest
0 голосов
/ 27 сентября 2018

Мне нужно разместить круглую кнопку в нижнем углу моего приложения для iPhone.На данный момент для iPhone 5 код ниже хорош, но для других айфонов кнопка находится посередине.

let button = UIButton(type: .custom)
        button.frame = CGRect(x: 260, y: 500, width: 50, height: 50)
        button.layer.cornerRadius = 0.5 * button.bounds.size.width
        button.clipsToBounds = true
        button.setImage(UIImage(named:"dummy.jpg"), for: UIControlState.normal);
        button.addTarget(self, action: #selector(bankButtonPressed), for: .touchUpInside)
        view.addSubview(button)

Итак, как настроить динамическую славу кнопок, чтобы она подходила для всех моделей iPhone.Я хочу, чтобы button.frame = CGRect (x: 260, y: 500, width: 50, height: 50) - его x и y устанавливались динамически, чтобы они всегда были в нижнем углу.Я приложил скриншот, и вот как это выглядит.

enter image description here

Пожалуйста, руководство по тому же.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Замените

button.frame = CGRect(x: 260, y: 500, width: 50, height: 50)

на

button.frame = CGRect(x:  UIScreen.main.bounds.size.width - 70 , y:  UIScreen.main.bounds.size.height - 70 , width: 50, height: 50)

ИЛИ используйте автоматическую компоновку

button.translatesAutoresizingMaskIntoConstraints = false

NSLayoutConstraint.activate([

    button.trailingAnchor.constraint(equalTo: view.trailingAnchor,constant:-20),

    button.bottomAnchor.constraint(equalTo: view.bottomAnchor,constant:-20),
])
0 голосов
/ 27 сентября 2018

В раскадровке

control + нажмите на кнопку.

Затем перетащите вниз и нажмите Вниз к safeArea

Обновление, поскольку вы создаете его в ViewDidLoad, вы можете использовать это расширение, чтобы программно добавить ограничение в нижнюю область и другие,

extension UIButton {

  var safeTopAnchor: NSLayoutYAxisAnchor {
    if #available(iOS 11.0, *) {
      return self.safeAreaLayoutGuide.topAnchor
    } else {
      return self.topAnchor
    }
  }

  var safeLeftAnchor: NSLayoutXAxisAnchor {
    if #available(iOS 11.0, *){
      return self.safeAreaLayoutGuide.leftAnchor
    }else {
      return self.leftAnchor
    }
  }

  var safeRightAnchor: NSLayoutXAxisAnchor {
    if #available(iOS 11.0, *){
      return self.safeAreaLayoutGuide.rightAnchor
    }else {
      return self.rightAnchor
    }
  }

  var safeBottomAnchor: NSLayoutYAxisAnchor {
    if #available(iOS 11.0, *) {
      return self.safeAreaLayoutGuide.bottomAnchor
    } else {
      return self.bottomAnchor
    }
  }
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...