Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

IBOutlet NSLayoutConstraint 运行时为nil #25

Open
fuchengking opened this issue Jul 20, 2016 · 7 comments
Open

IBOutlet NSLayoutConstraint 运行时为nil #25

fuchengking opened this issue Jul 20, 2016 · 7 comments

Comments

@fuchengking
Copy link

在2.3.0版本中,程序运行时 IBOutlet weak NSLayoutConstraint 的属性为nil,为strong时改变约束的值不起作用。

@yangfeiyu
Copy link

同样遇到了,求更新啊....

@KelvinJin
Copy link

KelvinJin commented Aug 30, 2016

@651893553
@yangfeiyu

iOS 10 里面作者采用了重新创建NSLayoutConstraint的方法,这样就导致你本来连接的IBOutlet的NSLayoutConstraint不再是新创建这个。两个办法:

  • 如果你不想改作者代码,那就不要用outlet这种方法,在ViewDidLoad里面动态获取这个LayoutConstraint。你可以在 IB 里面定义identifier然后用这个去找,很简单的。
  • 或者你可以用我修改过的这个gist替换掉作者的XXNibBridge.m文件: https://gist.github.com/KelvinJin/89050ba5ebad16a01abf3b96d15ebbe7

@fuchengking
Copy link
Author

@KelvinJin 我替换你的这个文件后还是出现了崩溃的问题,不知道作者在2.3.1的更新中是否解决了这个问题?

@KelvinJin
Copy link

KelvinJin commented Sep 19, 2016

@651893553 还是nil出错么?那只能试试用identifier自己获取了,不用IBOutlet,也很简单。

@fuchengking
Copy link
Author

@KelvinJin 是在消息转发获取函数签名的那个方法中崩溃的,没有获取到函数签名, 环境Xcode8 iOS9.3.2

@KelvinJin
Copy link

@651893553 诶,那就奇怪了,我这边倒是没遇到这个问题。。。

@liangdahong
Copy link

今天也遇到了,可使用

    [view.constraints enumerateObjectsUsingBlock:^(__kindof NSLayoutConstraint * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
        ;
    }];

处理

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants