iOS 7: Misplaced View Frame for “Label - Label” will be different at run time

微笑、不失礼 提交于 2019-11-28 15:57:44

问题


I just finished an app on iOS 6 and bought a developer account a week ago so haven't had much time playing with the iOS 7 SDK. Just downloaded the Golden Master version and trying to upgrade my app to be compatible with iOS 7.

I received a lot of warnings saying

Misplaced View Frame for "Label - Label" will be different at run time.

and I am unable to run the program. The project contains tableview and its is parsing and displaying XML feed from an RSS.

How to fix this issue?


回答1:


I had the same issue and I get below response form Apple:

You need to update the constraints to match the frames of these views.

I did the following:

Editor -> Resolve Auto-Layout Issues -> Clear all constraints in ** view controller

then I reordered my objects again in the view.

PS: Try Enrico's solution first.




回答2:


The accepted answer will fix the problem, but that's not a good solution because it'll remove all your constraints. If you have spent hours on the constraints then don't do that.

If you click the triangle next to the warning you can get the explanation of what is misplaced. Then you can just move the frame to where it's supposed to be. For example:

In this case I just moved my Text View's y position to 94 and the warning will go away. This is because one of my constraints will force the view to be somewhere else when the app is running, but the position is different than where it currently is in the storyboard.


Another way to move the frame to the right position is to click on the warning next to the View Controller name in your storyboard, and then click on the yellow warning sign, and click update frame.

These two methods are not destructive and will not remove your constraints. If anything it'll show that you may need to do minor readjustments in your constraints.




回答3:


I had the same issue what you need to is , update the constraints or update the frame. On storyboard you have a small tool bar as shown in below image.

Please see the meaning:-

You can either choose "Update Frames" or "Update Constraints" and Use "Reset to Suggested Constraints". This will resolve the issue regarding misplaced View. Don’t drag and drop views to make adjustments to layout. Edit the applicable constraints instead. Please , let me know if you not clear.




回答4:


If you are having troubles finding the Update Frames in xCode it can be done like so:




回答5:


None of the answers work in all cases. As of recent version of Xcode, using a UISearchBar, enabling scoping field enabled in IB makes the search field appear double height (but doesn't show a the scoping bar beneath it). Whether or not you add a height constraint (of any height) to the search field, you'll get the warning that it is a misplaced view that will be 88 H at runtime but is 44 H in IB. Updating the frames (any or all frames) doesn't resolve it. Seems like a bug in IB.



来源:https://stackoverflow.com/questions/18758154/ios-7-misplaced-view-frame-for-label-label-will-be-different-at-run-time

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!