मैं एक फेसबुक एसडीके लॉगिन बटन में बाधाओं को जोड़ने की कोशिश कर रहा हूं।बाधाओं को प्रोग्रामेटिक रूप से तेज़ी से जोड़ें
मेरे पास स्क्रॉल व्यू के अंदर बटन है और मैं स्क्रॉल व्यू में एक लेबल में शीर्ष बाधा जोड़ने की कोशिश कर रहा हूं। मैं बिना किसी रन टाइम त्रुटियों के साथ ऊंचाई बाधा को सफलतापूर्वक जोड़ सकता हूं लेकिन वास्तविक बाधा बटन पर लागू नहीं होती है।
जब एक दृश्य में जोड़ा, बाधा के आइटम उस दृश्य के वंशज होना चाहिए (या खुद देखें):
@IBOutlet weak var orLbl: UILabel!
@IBOutlet weak var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
var loginFBButton = FBSDKLoginButton()
loginFBButton.readPermissions = ["public_profile", "email"]
let heightConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Height,
relatedBy: NSLayoutRelation.Equal,
toItem: nil,
attribute: NSLayoutAttribute.NotAnAttribute,
multiplier: 1,
constant: 41)
let topConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.TopMargin,
relatedBy: NSLayoutRelation.Equal,
toItem: self.orLbl,
attribute: NSLayoutAttribute.BottomMargin,
multiplier: 1,
constant: 31)
let leadingConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Leading,
relatedBy: NSLayoutRelation.Equal,
toItem: self.registerButton,
attribute: NSLayoutAttribute.Left,
multiplier: 1,
constant: 0)
let trailingConstraint = NSLayoutConstraint(
item: loginFBButton,
attribute: NSLayoutAttribute.Leading,
relatedBy: NSLayoutRelation.Equal,
toItem: self.registerButton,
attribute: NSLayoutAttribute.Right,
multiplier: 1,
constant: 0)
self.scrollView.addSubview(loginFBButton)
//loginFBButton.center = self.scrollView.center
loginFBButton.addConstraints([heightConstraint, topConstraint])
}
फिर जब मैं शीर्ष बाधा के अलावा शामिल हैं, मैं एक रनटाइम त्रुटि हो रही है । दृश्य पदानुक्रम को इकट्ठा करने से पहले बाधा को हल करने की आवश्यकता होने पर यह दुर्घटनाग्रस्त हो जाएगा।
बिना किसी अपवाद 'NSGenericException' के कारण ऐप को समाप्त करना, कारण: 'दृश्य पर बाधा स्थापित करने में असमर्थ। क्या बाधा दृश्य के उप-भाग के बाहर से कुछ संदर्भित करती है? यह अवैध है।
लेबल और फेसबुक बटन दोनों मेरे स्क्रॉल व्यू में हैं? मैंने orLbl.superview और loginFBButton.superview को भी मुद्रित किया है और मुझे
क्या आपने यह पता लगाने की कोशिश की है कि दो बाधाओं में से कौन सा अपवाद अपवाद का कारण बनता है? – freytag
@freytag हां प्रश्न में उल्लिखित है, यह तब था जब मैंने शीर्ष बाधा को जोड़ा, दुर्घटना हो रही थी। एक और उपयोगकर्ता ने लॉगिन एफबी बटन के बजाय स्क्रॉलव्यू में बाधाओं को जोड़ने का सुझाव दिया। मैंने ऐसा किया और कोई रनटाइम त्रुटियां नहीं मिलीं लेकिन फिर मेरा फेसबुक बटन स्क्रीन के ऊपरी बाईं ओर है और लेबल पूरी तरह से स्क्रीन से बाहर है – user2363025