UIButtons在所有设备上的形状都不正确

时间:2017-10-31 09:21:47

标签: swift xcode swift3 uibutton autolayout

我有一个带有四个方形按钮的UIView控制器,我已经用边框将它们设置为圆形。它在iPhone 8和iPhone X上完美运行,但在iPhone SE和iPhone 8 Plus中,UIButton不再是圆形。我已将UIButtons设置为方形,并将该比例与自动布局保持一致,但它似乎无法正常工作。

在我的 ViewController.Swift 中,我已将四个UIButtons链接起来,然后我应用了相同的代码,如下所示:

first

void doPrint(Node printPane) {
 PrinterJob job = PrinterJob.createPrinterJob();
  if (job != null && job.showPageSetupDialog(printPane.getScene().getWindow())) {
                    job.printPage(printPane);
                    job.endJob();
                }
            }
        }


second

boolean doPrint(Node printPane) {
        PrinterJob job = PrinterJob.createPrinterJob();
        if (job == null) {
            return false;
        }
        if (!job.printPage(printPane)) {
            return false;
        }
        return job.endJob();
    }

在这里,您可以看到iPhone SE和iPhone 8 Plus上的行为。 iPhone 8和iPhone X很好

Screenshots iPhone Simulator

自动布局限制:

Auto-Layout in action

1 个答案:

答案 0 :(得分:3)

在viewcontroller的viewDidLayoutSubviews方法中设置按钮cornerRadius

 override func viewWillLayoutSubviews() {
    super.viewWillLayoutSubviews()
    // Edit it to round
    topLeftButtonImage.layer.cornerRadius = topLeftButtonImage.bounds.size.height / 2
    topLeftButtonImage.clipsToBounds = true

    // Add border
    topLeftButtonImage.layer.borderColor = UIColor.white.cgColor // Button border color
    topLeftButtonImage.layer.borderWidth = 4 // Button border width
}