我正在尝试使用 FBSDKProfilePictureView 从 Facebook 显示用户的个人资料图片,但是当我设置个人资料 ID 时它只是显示为空白。我使用 Graph API 和 /me 节点获取配置文件 ID。然后我在 cellForRowAtIndexPath: 中调用的 setupCell 方法中设置 ID,设置很简单,如下所示:
public func setupCell(userId: String?) {
if userId != nil {
profilePicture.profileID = "4";
}
welcomeLabel.text = "Welcome back, Mark"
}
(测试数据使用扎克伯格的信息)
我已经验证了 userId 已设置,因此它正在获取用户 ID。然后我像这样覆盖 layoutSubviews:
override public func layoutSubviews() {
super.layoutSubviews()
profilePicture.layer.cornerRadius = profilePicture.bounds.height / 2.0
profilePicture.clipsToBounds = true
profilePicture.setNeedsImageUpdate()
welcomeLabel.sizeToFit()
}
我认为设置 needsImageUpdate() 会做到这一点,但显然不是。我在这里找到了另一篇文章,建议我在我的应用程序传输安全性中再添加两个域,这是我拥有的相关部分:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>facebook.com</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>1.1</string>
</dict>
<key>akamai.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>1.1</string>
</dict>
<key>akamaihd.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSTemporaryExceptionRequiresForwardSecrecy</key>
<false/>
<key>NSTemporaryExceptionMinimumTLSVersion</key>
<string>1.1</string>
</dict>
<key>fbcdn.net</key>
<dict>
<key>NSIncludesSubdomains</key>
<true/>
<key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
<false/>
</dict>
</dict>
</dict>
我不确定我在这里缺少什么?它必须是一些容易的事情。我可以提供可能需要的任何其他数据,我希望您能提供任何帮助!