如何根据iPad模式视图控制器的框架宽度设置按钮的宽度?- Swift 5

问题描述 投票:0回答:1

所以我想添加一个宽度为50的按钮,并将其放在视图控制器的下部中心。

我是这样做的。

    purchaseButton.layer.cornerRadius = 14
    purchaseButton.frame = CGRect(x: 0, y: 0, width: self.view.frame.width - 50, height: 50)
    purchaseButton.autoresizingMask = [.flexibleLeftMargin, .flexibleBottomMargin]
    purchaseButton.contentEdgeInsets = UIEdgeInsets(top: 14, left: 0, bottom: 14, right: 0)
    let xPosition: CGFloat = self.view.frame.width / 2.0
    let yPosition: CGFloat = self.view.frame.height / 1.25
    purchaseButton.center = CGPoint(x: xPosition, y: yPosition)

这在所有的iPhone设备和尺寸上都能完美地工作。然而,对于iPad来说,视图是一个模态,我认为frame.width是整个iPad屏幕的大小,而不仅仅是较小的视图。这导致按钮在iPad设备上太低和太宽。有什么方法可以让我获得模态弹出式视图控制器的宽度和高度,而不是整个设备的框架,并使用它来设置按钮的大小?

swift xcode ipad uibutton frame
1个回答
1
投票

我发现,我需要调用viewWillAppear中的代码,而不是viewDidLoad中的代码,以获得视图控制器的正确尺寸。这样做就解决了这个问题!

© www.soinside.com 2019 - 2024. All rights reserved.