【问题标题】:UIView changed when something is added programmatically - Swift以编程方式添加内容时 UIView 发生了变化 - Swift
【发布时间】:2016-04-23 06:40:14
【问题描述】:

我正在开发一款适用于 iPad 的应用程序。在这个应用程序中,我使用了一个容器视图控制器和一个视图控制器。在提问之前,让我告诉你它是如何工作的:

还有我的 Swift 代码:

import UIKit

class ViewController: UIViewController {

    @IBOutlet var containerView: UIView!

    @IBOutlet var blueView: UIView!

    var frameSize: CGSize!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func viewDidAppear(animated: Bool) {
        frameSize = self.view.frame.size
        containerView.frame.origin = CGPoint(x: frameSize.width - containerView.frame.width, y: 0)

        let deviceSize = CGSize(width: 375, height: 667)

        blueView.frame = CGRect(origin: CGPoint(x: frameSize.width / 2 - deviceSize.width / 2 - containerView.frame.width / 2, y: frameSize.height / 2 - deviceSize.height / 2), size: deviceSize)      

    }

    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {

        let button = UIButton(frame: CGRect(origin: CGPoint(x: 20, y: 20), size: CGSize(width: 100, height: 50)))
        button.titleLabel?.text = "Button Test"
        button.backgroundColor = .redColor()

        blueView.addSubview(button)

    }

}

我运行它,一切都按预期进行。

问题是,当我触摸屏幕时,在 touchesBegan 中运行代码。

问题是添加 programativamente 任何东西。我无法修复它。我的屏幕是这样的:

当我以编程方式添加某些内容时,我无法确定原点和大小发生了什么变化。

有人可以帮我吗?

【问题讨论】:

    标签: swift uiview swift2 uicontainerview


    【解决方案1】:

    这是因为选项“使用自动布局”。让禁用来解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-02
      • 2017-03-17
      • 1970-01-01
      • 2021-10-21
      • 2019-07-25
      相关资源
      最近更新 更多