Ah, I forgot to add constraints to establish the origin.
Got it. Thanks,
-Luther
On Sat, Jul 26, 2014 at 10:44 AM, Luther Baker lutherba...@gmail.com
wrote:
In the following example, I'm displaying a child view in a container view
attached to a view controller's view property ... on a Retina iPhone
simulator.
EXPECTED: The VFL constraints cause the child to fill the screen whereas
UNEXPECTED: the programmatic constraints cause the child to fill exactly
1/4 of the screen (1/2 width, 1/2 height). The programmatic constraints
work if I set the multiplier=2.0 on each of those constraints.
I normally don't use width / height constraints this way but I'm surprised
by the outcome. Is this a Retina pixels/points thing or am I doing
something wrong?
Thanks,
-Luther
//
// 1. Fill the parent view with a simple, yellow container
//
_containerView = [[UIView alloc] init];
_containerView.backgroundColor = [UIColor yellowColor];
_containerView.translatesAutoresizingMaskIntoConstraints = NO;
[self.view addSubview:_containerView];
NSArray *cc = [NSLayoutConstraint constraintsWithVisualFormat:@
V:|[container]|
options:NSLayoutFormatAlignAllCenterX
metrics:nil
views:@{
@container : _containerView }];
[self.view addConstraints:cc];
cc = [NSLayoutConstraint constraintsWithVisualFormat:@
H:|[container]|
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{ @container
: _containerView }];
[self.view addConstraints:cc];
//
// 2. Add a red child to the aforementioned container view
//
UIView *childView = [[UIView alloc] init];
childView.backgroundColor = [UIColor redColor];
childView.translatesAutoresizingMaskIntoConstraints = NO;
[_containerView addSubview:childView];
// WORKS AS EXPECTED
cc = [NSLayoutConstraint constraintsWithVisualFormat:@V:|[child]|
options:NSLayoutFormatAlignAllCenterX
metrics:nil
views:@{
@child : childView }];
[_containerView addConstraints:cc];
cc = [NSLayoutConstraint constraintsWithVisualFormat:@H:|[child]|
options:NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{ @child :
childView }];
[_containerView addConstraints:cc];
//
// now, replace the VFL from above with this and the child view only fills
1/4 of the screen
//
NSLayoutConstraint *c = [NSLayoutConstraint
constraintWithItem:childView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:_containerView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0.0];
[_containerView addConstraint:c];
c = [NSLayoutConstraint constraintWithItem:childView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:_containerView
attribute:NSLayoutAttributeHeight
multiplier:1.0
constant:0.0];
[_containerView addConstraint:c];
___
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