Upvote:6
You can call it in viewDidLayoutSubviews() if you have issue.
From Apple iOS 10 Release notes is:
Sending layoutIfNeeded to a view is not expected to move the view, but in earlier releases, if the view had translatesAutoresizingMaskIntoConstraints set to NO, and if it was being positioned by constraints, layoutIfNeeded would move the view to match the layout engine before sending layout to the subtree. These changes correct this behavior, and the receiver’s position and usually its size won’t be affected by layoutIfNeeded.
Some existing code may be relying on this incorrect behavior that is now corrected. There is no behavior change for binaries linked before iOS 10, but when building on iOS 10 you may need to correct some situations by sending -layoutIfNeeded to a superview of the translatesAutoresizingMaskIntoConstraints view that was the previous receiver, or else positioning and sizing it before (or after, depending on your desired behavior) layoutIfNeeded.
Third party apps with custom UIView subclasses using Auto Layout that override layoutSubviews and dirty layout on self before calling super are at risk of triggering a layout feedback loop when they rebuild on iOS 10. When they are correctly sent subsequent layoutSubviews calls they must be sure to stop dirtying layout on self at some point (note that this call was skipped in release prior to iOS 10)."
Essentially you cannot call layoutIfNeeded on a child object of the View - now calling layoutIfNeeded has to be on the superView, and you can still call this in viewDidLayoutSubviews.
More Answer related to the Same Query
- CAN LAYOUTIFNEEDED BE USED IN VIEWDIDLOAD TO DETERMINE A CORNER RADIUS SIZE? IN IOS
- CALLKIT FIND NUMBER USED TO START APP FROM NATIVE PHONE APP IN IOS
- IMAGE DOES NOT UPDATE WHEN CHANGED IF THAT IMAGE IS USED ON LAUNCHSCREEN.STORYBOARD IN IOS
- WHEN VIEWDIDLOAD SET TEXTFIELD EDITABLE / ENABLE KEYBOARD IN IOS
- IS IT POSSIBLE TO ANSWER A CALL PROGRAMMATICALLY IN IOS? IN IOS
- INIT METHOD VS. A VIEWDIDLOAD TYPE METHOD IN IOS
- IOS: HOW TO DEFINE SOME DEFAULT OBJECTS TO BE USED ANYWHERE? IN IOS
Upvote:2
I think a better approach would be to do this either in viewWillAppear
or viewDidLayoutSubviews
Those are times when the frame is actually finalized. viewDidLayoutSubviews
is good because it will react to changes in the views frame.
Upvote:2
If you have a requirement of different cornerRadius
values for different size classes, I would use traitCollectionDidChange
instead of viewWillLayoutSubviews
or viewDidLayoutSubviews
.
override func traitCollectionDidChange(previousTraitCollection: UITraitCollection?)
is called only when the iOS interface environment changes. If the view is being loaded for the first time, previousTraitCollection
will be nil
.
That way, if your application supports multitasking, as soon as the view size changes to show two apps on your device screen at once, your views and will resize properly to fit the new size class. Using the layoutSubviews
methods will also work, but might put additional processing strain on your application.
Credit Goes to: stackoverflow.com
Related question with same questions but different answers
- SEARCH FOR ADDRESS USING SWIFT IN IOS
- USE MP3 METADATA OR HTML TO DISPLAY ARTWORK AND TRACK NAME ON IPHONE LOCK SCREEN IN IOS
- LISTEN FOR INFOWWINDOW TAP IN SWIFT IN IOS
- HOW TO REPLACE CURRENT CALAYER IN IOS
- HOW TO GET RANGE OF SPECIFIC SUBSTRING EVEN IF A DUPLICATE IN IOS
- WKWEBVIEW ADD TO SUBVIEW, AND SET SIZE EQUAL TO PARENT? IN IOS
- DIFFERENT TYPES OF CLOSURE SYNTAX IN SWIFT - WHICH ONE IS CORRECT? IN IOS
- INSTALL CRASHLYTICS BUILD IN IOS SIMULATOR IN IOS
- NO * CANDIDATES PRODUCE THE EXPECTED RESULT TYPE FLOATINGPOINTROUNDINGRULE IN IOS
- AVCAPTURESESSION STARTRUNNING EXC_BAD_ACCESS IOS 10 SWIFT 3 IN IOS
- IOS10 UICOLOR CHANGE IN IOS
- CHANGE UIDATEPICKER TEXTCOLOR IN IOS10 IN IOS
- XCODEBUILD RAISES LIBSWIFTCORE ERROR IN IOS
- WHAT IS THE BEST WAY TO REUSE THE ATTRIBUTES FROM A UIBUTTON IN SWIFT IN IOS
- HOW TO SORT ARRAY OF DATES IN ASCENDING ORDER IN IOS IN IOS
- HOW TO CHANGE UIPOPOVERPRESENTATIONCONTROLLER'S ARROW COLOR WITHOUT DRAWING MY OWN IN IOS
- GET KEY OF DICTIONARY ON JSON PARSE WITH SWIFTYJSON IN IOS
- HOW TO PRESENT AN ACTION EXTENSION IN AN ACTION SHEET RATHER THAN FULL-SCREEN MODAL VIEW? IN IOS
- FIREBASE NOTIFICATIONS: SEND MESSAGE THROUGH HTTP POST IN IOS
- HOW TO GENERATE 4 RANDOM NUMBER AND THOSE 4 NUMBER SUM MUST BE 100 IN IOS
- HOW TO ROTATE A UILABEL UPSIDE DOWN IN XCODE, USING SWIFT? IN IOS
- HOW TO ADD NSLAYOUTCONSTRAINTS PROGRAMMATICALLY IN IOS
- IOS - PASS A 4X4 MATRIX TO GLUNIFORMMATRIX4FV IN IOS
- GHOSTING IN [CALAYER DRAWINCONTEXT] IN IOS
- APPSTORE: BLOCKING THE GAME FOR 3G- DEVICES IN IOS
- HOW TO IGNORE SOME STATIC LIBRARY FOR IOS SIMULATOR IN IOS
- HOW TO INSERT A UIACTIVITYINDICATOR INTO SEARCH BAR TEXTFIELD? IN IOS
- PORTRAIT MODE ONLY-IOS IN IOS
- CTFRAMESETTERSUGGESTFRAMESIZEWITHCONSTRAINTS WITH CLIPPING ATTRIBUTES RETURNING ZERO HEIGHT IN IOS
- SHOW STATUS BAR WHEN HIDE NAVIGATION BAR IN IOS
- SWIFT - UITABLEVIEW 'UNABLE TO DEQUEUE A CELL WITH IDENTIFIER CELL' IN IOS
- STREAMING S3 PRIVATE VIDEOS IN IOS
- DISMISSVIEWCONTROLLERANIMATED CALLING METHOD IN ANOTHER VIEW IN IOS
- OBJECTIVE-C/IOS - OPEN LOCAL HTML FILE WITH SAFARI IN IOS
- IOS 7 UITABLEVIEW CELL BACKGROUND VIEW IN IOS
- MANAGING LAYOUTS IN IOS IN IOS
- SWIPE GESTURE BETWEEN VIEW CONTROLLERS IN IOS
- PUSHVIEWCONTROLLER TAKING TOO MUCH TO SHOW THE VIEW IN IOS
- IOS SWIFT HOW TO CREATE A PROTOCOL INSTANCE IN IOS
- ADDING LOCALIZED FILES TO A NEW IOS 7 APP IN IOS
- UIBUTTON GROUPED BUTTONS IN IOS
- WHY DO I NEED BRACES AT THE END OF AN ARRAY DECLARATION IN SWIFT? IN IOS
- UILABEL WITH GIVEN TRANSPARENCY BUT TEXTLABEL SHOULD BE OPAQUE IN IOS
- CCLABELTTF HOW TO CHANGE COLOR OF STRING IN IOS
- USING XIB/NIB FILES CONTAINED WITHIN DOWNLOADED BUNDLES ON IOS IN IOS
- PRESSGESTURERECOGNIZER AND TOUCHESBEGAN IN IOS
- HOW TO USE CMMOTIONACTIVITYMANAGER AND RECEIVE UPDATES? IN IOS
- HOW DO I CONFIGURE THE TEXT FIELD TO ACCOUNT FOR THE EXPIRY DATE? IN IOS
- UNABLE TO COPY SYMBOLS FROM THIS DEVICE. USING IOS 9.0.2 IN IOS
- FORCE IOS APP OPENS EXTERNAL LINKS IN SAFARI IN IOS
- TESTFLIGHT TEST APP GOES WRONG AT BEGINNING WITH CLOUDKIT IN IOS