'Autoresizing issue in Xcode 8

=== EDIT ========

This issue is now solved in Xcode 8.1. I have checked.

================

I don't know auto-layout properly. So, I am using autoresizing option in my all apps and it's fine for me. I am able to fulfill my all requirements by this without any issue.

Now in Xcode 8, I have migrated my old swift project to swift 3. Now issue arises.

Storyboard SS

See in image, I have set Autoresizing, and its working fine without issue in all devices until now and this project is live in AppStore, so that I can't show the UI or storyboard.

Now I have to do some update in project. So I am working in Xcode 8 now. But my autoresizing not working properly, as all the controls are come in center and UI is messed up.

Output image

And the issue persists in device also. I have checked in simulator and device as well. But problem is there also. Any suggestion and help will be appreciated. Thanks in advance.

EDIT:

Yesterday there is issue in runtime only, But Today storyboard also changed views like this image

Storyboard image

Which means the whole UI design is messed up. This is weird.



Solution 1:[1]

Facing same issue. As a my point of view this problem is occurred when we use autoresizing and set only inner autoresizingMask to any view controller. Like,

enter image description here

If we use also boundary autoresizingMask at that time not facing this issue. Like,

enter image description here

I don't know this is actual bug of xcode 8 or remove this functionality in xcode 8.

So, Finally my suggestion is that we need to use auto layout in xcode 8.

Solution 2:[2]

Please try to uncheck autoresizing from xib or storyboard. And inviewDidLoad set [_scrollView setAutoresizesSubviews:YES];

Try it if this solve your problem

Edit: In case of storyboard uncheck Resize view from NIB option.

Solution 3:[3]

I'm not sure about storyboards but I've found a temporary solution for xib files. In Utilities panel (right hand panel) select File Inspector tab. Under Interface Builder Document section, select the file to open in "XCode 7.x". It will ask you to confirm that you do not want to use XCode 8 features, save the file and close it.

enter image description here

Solution 4:[4]

Xcode 8 beta 2 solved this problem!! I already checkeded now!

Solution 5:[5]

I had a similar issue for scrollView in Xcode8

I have an one solution to work with scrollView

First take a simple UIView and add all component which you want add to in scrollView and give that component to autoSizing

And also take one scrollView and programmatically set view frame and also set scrollView contentSize and add your view into scrollView

like wise, in my case I added this code in viewDidLoad for swift project

// add view to scrollview

self.scrollObjForNextAppointment.contentSize = CGSize(width:self.scrollObjForNextAppointment.frame.size.width,height:410)

self.viewForScrollContent.frame = CGRect(x:0,y:0,width:self.scrollObjForNextAppointment.frame.size.width,height:410)

self.scrollObjForNextAppointment.addSubview(self.viewForScrollContent)

it's work for me, Thanks!

Solution 6:[6]

Solved by unchecking "Auto Resize Subviews" to ScrollView

enter image description here

Solution 7:[7]

Update the issue seems to have been fixed in Xcode 8.1


Having the same issue and I've found that the offender here is the UIScrollView element. Just move everything outside of your scroller and you will see that everything works just fine, like before.

Which means one possible workaround would be to place your scrollable content in an ordinary UIView, then replacing it with UIScrollView at run time, programmatically.

Solution 8:[8]

A moderator kindly deleted my answer here as a duplicate, so see my answer at:

Autoresizing under iOS 10 doesn't work

In response to max, yes, resizing a bunch of subviews can be a pain. That's why I suggested adding a single "content view" to the scroll view and moving all of your existing subviews inside of that view. Autosize the subviews inside of the content view just as you did with the scrollview, and autosize the content view to the scrollview.

It's that content view that you're then resizing inside viewDidLayoutSubviews.

And again, the "content view" inside of the scrollview construct is pretty much the standard way to get auto-sizing scroll views using autolayout, so it should be considered a best practice.

That method is described here...

https://spin.atomicobject.com/2014/03/05/uiscrollview-autolayout-ios/

My method seems a little convoluted, but I was able to patch up a storyboard with about a dozen scenes and Vc's in about 15 minutes. It would have taken much, much, much longer to rebuild everything using auto layout.

Solution 9:[9]

Apple just came out with XCode 8.2, which fixes this problem for me. I have been using XCode 7.3.1 for my interface design parallel to 8.1, but I can now use 8.2 without any problems.

The storyboard gets updated with widths and height of frames though, to accommodate the new 'View as:' functionality. Though it doesn't seem to affect running on device/simulator.

Curiously, the bugfix it is not noted in the XCode 8.2 release notes.

Original answer here

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 spassas
Solution 3 Srdr
Solution 4 Genevios
Solution 5
Solution 6 NSNoob
Solution 7
Solution 8 Community
Solution 9 Community