gpt4 book ai didi

ios - 以编程方式定位 UIView 不起作用 - 坚持 Storyboard定位

转载 作者:可可西里 更新时间:2023-11-01 02:16:52 27 4
gpt4 key购买 nike

我有以下 View ,但有以下限制:

@IBOutlet weak var square1ViewOutlet: UIView!

enter image description here

使用 Storyboard 将其插入到以下 View 中:

@IBOutlet weak var holderView: UIView!

enter image description here

我的问题是我无法覆盖 Storyboard建立的 square1ViewOutlet 的定位。下面的代码没有任何效果。我已经尝试了如下的一些变体,但没有任何效果,而且 View 确实受制于以前的 Storyboard 限制。我用我的 viewDidLoad 方法调用它。

    square1ViewOutlet.frame.origin.y = self.holderView.frame.origin.y + 20
square1ViewOutlet.frame.origin.x = self.holderView.frame.origin.x + 20
square1ViewOutlet.frame = CGRectOffset(CGRect(origin: square1ViewOutlet.frame.origin, size: square1ViewOutlet.frame.size), 20, 20)

square1ViewOutlet.center = CGPointMake(150, 150)
square1ViewOutlet.frame = CGRectMake( 100, 200, square1ViewOutlet.frame.size.width, square1ViewOutlet.frame.size.height )

知道我在这里做错了什么吗?

最佳答案

当您使用自动布局并尝试像您的代码一样更改框架尺寸或位置时,而不是更正所涉及的正确约束,您可以禁用约束效果,从而导致警告和意外的 View 尺寸和移动。

正确的做法是在您的代码中将约束链接为 IBOutlets:

@IBOutlet weak var customViewTopConstraint: NSLayoutConstraint
@IBOutlet weak var customViewHeightConstraint: NSLayoutConstraint
@IBOutlet weak var customViewLeadingConstraint: NSLayoutConstraint
@IBOutlet weak var customViewWidthConstraint: NSLayoutConstraint

并使用这些属性来改变它的常量值 (.constant)。这些规则适用于您必须更改框架尺寸的所有代码,因此请检查您的所有代码并将其更改为约束工作。

关于ios - 以编程方式定位 UIView 不起作用 - 坚持 Storyboard定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37336056/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com