On Aug 17, 2014, at 7:13 PM, Roland King <r...@rols.org> wrote: > .. and I finally found the one piece of the autolayout adoption guide which > made me think back in the day I could use setFrame: and it would all work > nicely. > > https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AdoptingAutoLayout/AdoptingAutoLayout.html#//apple_ref/doc/uid/TP40010853-CH15-SW1<https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/AutolayoutPG/AdoptingAutoLayout/AdoptingAutoLayout.html#//apple_ref/doc/uid/TP40010853-CH15-SW1> > > This tells you that not only are constraints set up for you based on the > autoresizing mask but they are also adjusted for you as you call setFrame:
No, it doesn't. Here are the references to -setFrame: on that page: > Views that are aware of Auto Layout can coexist in a window with views that > are not. That is, an existing project can incrementally adopt Auto Layout—you > don’t have to make it work in your entire app all at once. Instead, you can > transition your app to use Auto Layout one view at a time using the property > translatesAutoresizingMaskIntoConstraints. > > *** When this property is YES *** [emphasis mine], which it is by default, > the autoresizing mask of a view is translated into constraints. For example, > if a view is configured like the one below, and > translatesAutoresizingMaskIntoConstraints is YES, then the constraints > |-20-[button]-20-| and V:|-20-[button(20)] are added to the view’s superview. > The net effect is that unaware views behave as they did in versions of OS X > prior to version 10.7. > > If you move the button 15 points to the left (including by calling setFrame: > at runtime), the new constraints would be |-5-[button]-35-| and > V:|-20-[button(20)]. This section mentions that you can use -setFrame: when the translatesAutoresizingMaskIntoConstraints property is YES. Then, later on: > If you have a view that does its own custom layout by calling setFrame:, your > existing code should work. Just don’t call > setTranslatesAutoresizingMaskIntoConstraints: with the argument NO on views > that you place manually. This section specifically states that if you want to use -setFrame: yourself, you should make sure *not* to set translatesAutoresizingMaskIntoConstraints to NO (i.e., leave it set to YES). This is consistent with the behavior, which is that -setFrame: only has meaning when you are not using the constraints system, which is when translatesAutoresizingMaskIntoConstraints is set to YES. Charles _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com