У меня есть несколько квадратных кнопок, к которым я хотел бы добавить закругленные углы, которые пропорциональны высоте кнопки. В прошлых версиях моего приложения я реализовал эту функцию без проблем, используя viewDidLayoutSubviews (). По какой-то причине, после добавления новой версии моего приложения с другими функциями, которые я настроил, этот раздел кода больше не работает, как ожидалось. Вот код:
override func viewDidLayoutSubviews() {
for button in buttons {
button!.layer.shadowColor = UIColor.black.cgColor
button!.layer.shadowOffset = CGSize(width: 0, height: 1.0)
button!.layer.shadowOpacity = 0.4
button!.layer.shadowRadius = button!.frame.height / 40
button!.layer.cornerRadius = button!.frame.height / 10
}
Опять же, этот блок кода работал нормально, но по какой-то причине он больше не работает. Я испытываю гораздо больший относительный радиус на меньших кнопках (iPhone SE) по сравнению с большими кнопками (iPad).
Для устранения неполадок в viewDidLayoutSubviews () я печатаю кнопку! .Frame.height иЯ заметил, что независимо от того, какое устройство я использую, высота кадра составляет 395,5, что, как я считаю, является правильным размером только на 12,9-дюймовом iPad. Поэтому кнопки на 12,9-дюймовом iPad выглядят правильно, но радиусы в итоге оказываются слишком большимина всех меньших устройствах.
Есть идеи, что здесь происходит? Почему все они возвращают одинаковую высоту кадра, даже если они визуально очень разных размеров на разных устройствах?