以编程方式为所有iPhone和iPad设备在横向和纵向模式下为UIButton设置转角半径

时间:2018-12-22 15:54:11

标签: ios swift uibutton cornerradius

我正在使用的应用几乎是 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 :(得分:0)

使用此方法时,唯一困难的一点是设置约束。在大多数情况下,您都不必弄乱代码。

1。)。在图像编辑器中画一个圆圈。 Link To Image Editor I Used

Created Circle

2。)。将运算符/数字添加到圆圈中间 enter image description here

3。)使背景透明(如果背景为白色则不需要)

4。)。将图像添加到您的应用程序资产文件夹中

enter image description here

5。)。在Xcode中,将按钮image属性设置为刚创建的图像。

enter image description here

6。)为所有按钮创建约束

现在,无论定向如何,它都可以在所有设备上运行。

答案 1 :(得分:0)

问题就此结束。通过在

中计算并实现拐角半径,成功完成了在所有iOS设备的纵向和横向模式下在UIButton的左侧和行驶侧获得圆形边缘的解决方案
   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)

     }