Exactly right. And you can use the simplex behavior to your advantage. For example that's how you can build a "fitting size" method (or in other words this is how the system fitting size method works). Add a constraint with constant 0 with a lower priority and the system will crush the view as much as possible. You can use this kind of "get as close as possible" behavior in many cases.
Kevin On 3 Sep 2013, at 13:36, Marcel Weiher <marcel.wei...@gmail.com> wrote: > [this seems to have bounced earlier] > > Hi Kyle, Izak, > > On Aug 16, 2013, at 19:18 , Kyle Sluder <k...@ksluder.com> wrote: > >> As Ken Ferry described in his Auto Layout session at WWDC 2011, the specific >> solver used by Apple is based on the Cassowary constraint engine. > > Yes, the algorithm involved is a variant of the Simplex algorithm, optimized > for incremental re-solves. > > http://www.badros.com/greg/papers/cassowary-tochi.pdf > > >> So asking for the "algorithm" isn't really that helpful, because Auto Layout >> is not defined or implemented imperatively. There's an algorithm involved, >> but that algorithm is a general-purpose constraint solver that operates on >> linear equations. Strictly speaking it has nothing to do with views. > > True, the behavior has nothing to do with views in particular, but the > algorithm in question does have an effect on the results, particularly… > > On Aug 16, 2013, at 19:06 , Izak van Langevelde <eezac...@xs4all.nl> wrote: > >> I have only been able to sort this out by adding in code a constraint that >> explicitly constrains the two fields as having the same width. My main >> concern is that it feels too complicated for something this simple. > > > …the simplex algorithm searches for optima in the “corners” of the > multi-dimensional polyhedron (by walking along the edges). > > http://en.wikipedia.org/wiki/Cutting-plane_method > > This means that it will prefer solutions where one variable takes up all the > slack over one where the slack is distributed equally between two variables. > However, the fact that you are leaving this up to the algorithm does mean > that your set of constraints is underconstrained and that adding the equality > constraints is the right solution (probably with a lower priority than other > constraints). > > So called “interior point” methods that do not follow the edges also exist, > but despite the fact that these have theoretically better running times > (polynomial, whereas the simplex is exponential), in practice the simplex is > much faster, usually running in linear time. > > Cheers, > > Marcel > > _______________________________________________ > > 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/cathey%40apple.com > > This email sent to cat...@apple.com _______________________________________________ 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