Я работаю над экраном, который по сути позволяет пользователю вводить некоторую информацию для своего профиля. На этом экране есть кнопка, с помощью которой пользователи могут выбрать свой пол. Я хочу, чтобы эти кнопки были закругленными, поэтому, чтобы достичь sh этого, я делаю радиус угла этих кнопок равным половине их высоты. Чтобы попасть на этот экран, есть два способа: один - если вы создаете свой профиль, а второй - если вы редактируете свой профиль. Проблема в том, что когда вы создаете профиль, UIButton сжимается и не округляется правильно, но когда я редактирую свой профиль, он округляется правильно, даже если это тот же самый код, единственная разница в том, что когда вы находитесь в экран для редактирования вашего профиля, я включаю панель навигации.
Код, который я использую для округления кнопки, находится здесь:
maleButton.layer.borderColor = maleButtonColor.cgColor
maleButton.setTitleColor(maleButtonColor, for: .normal)
maleButton.layer.cornerRadius = maleButton.frame.size.height / 2
, и это происходит в функции, которая вызывается в: viewDidLayoutSubviews()
Различия в этих кнопках показаны ниже: Примечание ** Это те же самые кнопки, разница только в том, что на втором изображении цвет фона был изменен, чтобы показать, что пользователь выбрал эту кнопку , поскольку они редактируют свой профиль.
![enter image description here](https://i.stack.imgur.com/y4tlD.png)
![enter image description here](https://i.stack.imgur.com/MJMZn.png)
I printed out the heights, widths, and cornerradius that the buttons:
When it isn't working here are the values:
![enter image description here](https://i.stack.imgur.com/krhLv.png)
And when it is working here are the values:
введите описание изображения здесь
Как вы можете видеть, в обоих случаях радиус угла составляет ровно половину высоты, поэтому округление должно быть правильным, но это не так. И это странно, потому что это один и тот же код и один и тот же контроллер представления в разных ситуациях, когда он работает и не работает. Эта проблема ставила меня в тупик, поэтому я надеялся, что кто-то сможет пролить на нее свет. Спасибо!