iOS 8 / XCode 6 autolayout constraints applied after view appears

前端 未结 3 642
谎友^
谎友^ 2020-12-29 04:20

I have a project that was working just fine with XCode 5 and iOS 7, but when I recently downloaded XCode 6, I noticed some weird behavior with autolayout.

I have a s

相关标签:
3条回答
  • 2020-12-29 04:35

    Where is your code that is making changes to your constraints?

    If you're keeping it in viewWillAppear: you will have that problem. I found that viewDidLayoutSubviews works well for iOS8 but not always for iOS7 backwards.

    Eventually, if you cant use viewDidLayoutSubviews, what I'd suggest is hide the container view in viewDidLoad and unhide it in viewWillAppear, only after the constraints have been applied. It gets you a small extra delay when loading the screen but the constraints change gets transparent to the user.

    0 讨论(0)
  • 2020-12-29 04:36

    For me it was an issue with the tab bar in my project. I didn't need it in that view and I hid it on push. So when the view got pushed onto the stack the bar was hidden and the constraints adjusted accordingly. So I just put the tab bar back in.

    0 讨论(0)
  • 2020-12-29 04:56

    I had a similar issue and put items into a container view in preparation for hiding and then showing them as suggested in the other answer.

    I didn't love that as a solution and ended up not having to do it.

    Simply putting them in a container view that was pegged to the controller's view stopped the issue from happening.

    0 讨论(0)
提交回复
热议问题