【问题标题】:swift 5 autoresizingMask not working at allswift 5 autoresizingMask 根本不工作
【发布时间】:2020-09-25 02:32:42
【问题描述】:

我熟悉 Autolayout 编程,但我也想尝试 autoresizingMask 编程。我创建了一个绿色框并希望将其水平居中,但顶部和底部的距离固定,但是无论我尝试了 autoresizingMask 的任何组合,它都无法正常工作。

override func viewDidLoad() {
    super.viewDidLoad()
    view.backgroundColor = .white
    view.autoresizesSubviews = true
    view.translatesAutoresizingMaskIntoConstraints = true

    let myView = UIView(frame: CGRect(x: 175, y: 100, width: 30, height: 30))
    myView.backgroundColor = .green
    view.addSubview(myView)
    myView.autoresizingMask = [.flexibleRightMargin, .flexibleLeftMargin]
}

我在 iphone SE2 和 iphone 11 Pro Max 上试过,绿块以 SE 为中心,但从未在 Pro Max 上,有人知道这是怎么回事吗?

【问题讨论】:

  • 所以您实际上并没有使视图居中,那么您希望该视图“居中”在什么意义上?
  • 只想水平居中
  • 嗯,你仍然没有水平居中。
  • 我真正想做的是测试自动调整大小是否有效。但是,如果我尝试将绿色框保持固定大小并且灵活的右边距现在仍然可以工作
  • 总的来说,autoresizingMask 在 ios 中的行为就像没有人一样,如果我应用其中任何一个或任何组合都不起作用。

标签: ios swift autoresizingmask


【解决方案1】:

自动调整大小的作用是根据其框架和自动调整掩码来维护视图。所以第一步,如果你想让这个视图居中,就是将它居中

myView.center = CGPoint(x:view.bounds.midX, y:view.bounds.midY)

现在让所有四个边距变得灵活,并且视图将保持在您放置的位置(相对于任何屏幕尺寸)。

【讨论】:

    【解决方案2】:

    默认情况下,视图是刚性的,并且到左上角的距离是恒定的。您正在寻找灵活的宽度和高度

    autoresizingMask = [.flexibleHeight, .flexibleWidth]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-29
      • 2018-02-10
      • 2017-03-19
      • 2013-09-20
      • 2013-11-08
      相关资源
      最近更新 更多