Почему .center работает только для меня по оси Y?

-2
class ViewController: UIViewController {
    @IBOutlet var friendsButton: UIImageView! //Friends Button
    @IBOutlet var circleButton: UIImageView! //Circle Button
    @IBOutlet var profileButton: UIImageView! //Profile Button
    @IBOutlet var whiteBoxSelector: UIImageView! //White Box Selector

    override func viewDidLayoutSubviews() {
        whiteBoxSelector.center = self.friendsButton.center //line that doesn't seem to run properly
    }
}

Когда я запустил это, мой whiteBoxSelector переместится к кнопке друзей, но только по оси y, а позиция x - 0. Я не установил никаких ограничений для белого ящика, а мои кнопки находятся в виде стека.

Теги:

1 ответ

0

Свойство центра представления указывает:

Центр рамы.

Центр задается в системе координат его надзора и измеряется в точках. Установка этого свойства соответственно изменяет значения свойств кадра.

Ваш вопрос о том, что whiteBoxSelector и friendsButton не одни и те же superview, поэтому системы координат не совпадают. Вам нужно перевести center в friendsButton от системы координат friendsButton (ее надтаблицы) в системе координат whiteBoxSelector (ее SuperView).

override func viewDidLayoutSubviews() {
    whiteBoxSelector.center = whiteBoxSelector.superview.convert(friendsButton.center, from: friendsButton.superview)
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню