2017-10-18 82 views
0

我想调整Facebook的LoginButton,但我得到这个错误的iOS的Facebook LoginButton约束冲突

[LayoutConstraints]无法同时满足的约束。 以下列表中的至少一个约束可能是您不想要的。

试试这个:

(1)看每个约束和揣摩,你不要指望;

(2)找到添加了不需要的约束或约束并修复它的代码。

(注意:如果你看到,你不明白NSAutoresizingMaskLayoutConstraints,请参阅UIView的财产translatesAutoresizingMaskIntoConstraints的文档)

( “NSAutoresizingMaskLayoutConstraint:0x1c4283ed0 H = - & V = - & FBSDKLoginButton:0x104432fd0'Log in'.height == 40(活动)”,

“NSLayoutConstraint:0x1c42828f0 FBSDKLoginButton:0x104432fd0'Log in'.height == 28(活性)>” )

将试图通过打破约束,以恢复

NSLayoutConstraint:0x1c42828f0 FBSDKLoginButton:0x104432fd0'Log in'.height == 28(主动)>

我已经搜查了很多,不知道如何height == 28约束存在。

创建LoginButton

private var didLayoutSubviews = false { 
    didSet { 
     //I've use storyboard first, but couldn't make it work with resizing 
     self.facebookSignUpButton.removeFromSuperview() 

     self.facebookSignUpButton = LoginButton(readPermissions: [.email, .publicProfile]) 

     //I've tried to set `isActive = false` 
     self.facebookSignUpButton.constraints.forEach({self.facebookSignUpButton.removeConstraint($0)}) 

     self.facebookSignUpButton.translatesAutoresizingMaskIntoConstraints = false 
     self.view.addSubview(self.facebookSignUpButton) 
     self.facebookSignUpButton.heightAnchor.constraint(equalToConstant: self.googleSignUpButton.frame.height - 8).isActive = true 
     self.facebookSignUpButton.widthAnchor.constraint(equalToConstant: self.googleSignUpButton.frame.width - 8).isActive = true 
     self.facebookSignUpButton.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true 
     self.facebookSignUpButton.topAnchor.constraint(equalTo: self.separatorLabel.bottomAnchor, constant: 20).isActive = true 
     self.facebookSignUpButton.bottomAnchor.constraint(equalTo: self.googleSignUpButton.topAnchor, constant: -10).isActive = true 
     self.facebookSignUpButton.delegate = self.presenter 
     self.view.layoutIfNeeded() 
    } 
} 

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 
    if !self.didLayoutSubviews { 
     self.didLayoutSubviews = true 
    } 
} 

回答