Программная установка углового радиуса для кнопок UIB в альбомном и портретном режимах для всех устройств iPhone и iPad - PullRequest
0 голосов
/ 22 декабря 2018

Приложение, над которым я работаю, является почти копией стандартного приложения Apple для калькулятора iPhone .

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

Указывает ли угловой радиус (путем деления UIButton.bounds.height / 2) в viewWillLayoutSubviews() правильное место?

Мне нужнокнопки влево и вправо, чтобы остаться на всех поворотах устройства.Я не беспокоюсь о том, чтобы верхняя и нижняя часть кнопок были круглыми.

Спасибо всем за внимание, оказанное мне в решении этой проблемы.Я не ищу прямого ответа, но если бы вы все могли, возможно, указать мне на некоторые темы для изучения, это было бы огромной помощью.Я также пытался установить угловой радиус в viewDidAppear().

В поисках программного решения с использованием UIButton.bounds.height. Я полагаю, что я просто пытаюсь найти правильный способ реализации углового радиуса с помощью

   var cornerRadius_forButtons: Double = 0
  if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft{
            cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)
        }
        else if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight{
            cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)

        } else {

            cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)

        }
 UIButton.layer.cornerRadius = CGFloat(cornerRadius_forButtons)

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Проблема была на моем конце.Решение для скругления краев как с левой, так и с боковой стороны UIButton (s) в портретном и ландшафтном режимах для всех устройств iOS было успешно выполнено путем расчета и реализации радиуса угла в

   var cornerRadius_forButtons: Double = 0

   override func viewWillLayoutSubviews() {
   if UIDevice.current.orientation == UIDeviceOrientation.landscapeLeft{

        cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)

    }
      else if UIDevice.current.orientation == UIDeviceOrientation.landscapeRight{

        cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)

    } else {

        //PORTRAIT

        cornerRadius_forButtons = Double(tag1_Button.bounds.height / 2.0)

    }

    tag1_Button.layer.cornerRadius = CGFloat(cornerRadius_forButtons)

     } 
0 голосов
/ 22 декабря 2018

Когда вы используете этот метод, единственное, что немного сложно, это установить ограничения.Вам не придется возиться с кодом по большей части.

1.) В редакторе изображений сделайте круг. Ссылка на редактор изображений, который я использовал

Created Circle

2.) Добавьте оператор / число к серединекруг enter image description here

3.) Сделать фон прозрачным (не требуется, если фон белый)

4.) Добавить изображение в ваши приложения Папка с активами

enter image description here

5.) В Xcode установите кнопки image свойство для изображения, которое вы только что создали.

enter image description here

6.) Создание ограничений для всех ваших кнопок

Теперь он должен работать на всех устройствах независимо от ориентации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...