#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. Вы не должны ничего основывать на размере экрана. Основывайте ее на размере представления контроллера просмотра. Использование ограничений еще лучше.