Ios 为什么我的UIButton不在我认为应该在的地方?

Ios 为什么我的UIButton不在我认为应该在的地方?,ios,iphone,swift,uiview,uibutton,Ios,Iphone,Swift,Uiview,Uibutton,我有一个UIView self.addProjectContainer,其框架为0 198;300 30. 我正在创建一个UIButton,并以编程方式将其添加为该UIView的子视图。此属性包含对按钮的引用: var addProjectButton:UIButton? 这就是我在ViewController的viewDidLoad方法中所做的: self.addProjectButton = UIButton(type: UIButtonType.System) self.addProj

我有一个UIView self.addProjectContainer,其框架为0 198;300 30. 我正在创建一个UIButton,并以编程方式将其添加为该UIView的子视图。此属性包含对按钮的引用:

var addProjectButton:UIButton?
这就是我在ViewController的viewDidLoad方法中所做的:

self.addProjectButton = UIButton(type: UIButtonType.System)
self.addProjectButton!.translatesAutoresizingMaskIntoConstraints = false
self.addProjectButton!.contentMode = UIViewContentMode.Redraw
self.addProjectButton!.frame = CGRect(x: 0, y: 0, width: 220, height: 30)
self.addProjectButton!.setTitle("+ Add Project", forState: UIControlState.Normal)
self.addProjectContainer.addSubview(self.addProjectButton!)
包含的UIView已正确定位,我通过为其提供背景色并使用调试器对其进行了验证:

(lldb) po self.addProjectContainer
<UIView: 0x7fa43c019a40; frame = (0 198; 300 30); autoresize = RM+BM; layer = <CALayer: 0x7fa43c019bb0>>
并将其添加到视图中,如下所示:

let frame:CGRect = CGRect(x: 0, y: 0, width: 220, height: 30)
self.addProjectLabel = UILabel(frame: frame)
self.addProjectLabel!.text = "+ Add Project"
self.addProjectContainer.addSubview(self.addProjectLabel!)
标签正好显示我希望按钮出现的位置:

(lldb) po self.addProjectLabel
▿ Optional<UILabel>
  - Some : <UILabel: 0x7fc560d2d2a0; frame = (0 0; 220 30); text = '+ Add Project'; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fc560d40a00>>
如何让按钮显示在正确的位置,就像标签一样?这让我快发疯了。

切掉关于翻译自动调整大小GMaskintoConstraints的界限。它会导致您的帧被忽略


或者,如果要将TranslatesAutoResizengMaskinToConstraints设置为false,请使用约束而不是框架进行定位

多谢各位。我不知道关于翻译自动调整大小的问题。我的按钮在我现在期望的地方。
let frame:CGRect = CGRect(x: 0, y: 0, width: 220, height: 30)
self.addProjectLabel = UILabel(frame: frame)
self.addProjectLabel!.text = "+ Add Project"
self.addProjectContainer.addSubview(self.addProjectLabel!)
(lldb) po self.addProjectLabel
▿ Optional<UILabel>
  - Some : <UILabel: 0x7fc560d2d2a0; frame = (0 0; 220 30); text = '+ Add Project'; userInteractionEnabled = NO; layer = <_UILabelLayer: 0x7fc560d40a00>>