繁体   English   中英

iOS Facebook LoginButton约束冲突

[英]iOS Facebook LoginButton constraints conflict

我想调整Facebook的LoginButton大小,但出现此错误

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

尝试这个:

(1)查看每个约束,并尝试找出不期望的约束;

(2)查找添加了一个或多个不必要约束的代码并进行修复。

(注意:如果看到的是您不了解的NSAutoresizingMaskLayoutConstraints,请参阅有关UIView属性translationsAutoresizingMaskIntoConstraints的文档)

(“” NSAutoresizingMaskLayoutConstraint:0x1c4283ed0 h =-&v =-&FBSDKLoginButton:0x104432fd0'Login'.height == 40(活动)”,

“” NSLayoutConstraint:0x1c42828f0 FBSDKLoginButton:0x104432fd0'Login'.height == 28(active)>“)

将尝试通过打破约束来恢复

NSLayoutConstraint:0x1c42828f0 FBSDKLoginButton:0x104432fd0'Login'.height == 28(active)>

我已经搜索了很多,并且不知道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
    }
} 

发给开发者的通知在4.19Facebook指南中 这已经在此处讨论过了

就个人而言,我只能使用Swift 4中的自定义登录按钮来实现此目的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM