> On 14 Sep 2015, at 10:35 am, Dave <[email protected]> wrote: > > Hi All, > > I’m trying to add Constraints to a View in order to have it stretch to the > left and right edges of the superview. This is slight complicated by it being > in a ScrollView/Stack View Combo as so: > > > NSScrollView Setup in NIB > NSFlippedClipView Setup in NIB > NSStackView Setup in NIB > LTWDetailXView (added dynamically in code). > > > The Detail View is smaller in Width than the NSScrollView/NSStackView and I > want it to stretch to fit it. > > I tried adding the following constraints in code as follows: > > myDetailView = [myDetailViewController getPrimaryView]; > [self.pValidationListStackView addView:myDetailView > inGravity:NSStackViewGravityTop]; > > myConstraintsViewDictionary = [[NSMutableDictionary alloc] init]; > [myConstraintsViewDictionary setObject:self.pValidationListStackView > forKey:@"StackView"]; > [myConstraintsViewDictionary setObject:myDetailView forKey:@"DetailView"]; > > myConstraintsArray = [NSLayoutConstraint > constraintsWithVisualFormat:@"H:[StackView]-(<=1)-[DetailView]" > options:NSLayoutFormatAlignAllLeft metrics:nil > views:myConstraintsViewDictionary]; > [myDetailView addConstraints:myConstraintsArray]; > > myConstraintsArray = [NSLayoutConstraint > constraintsWithVisualFormat:@"H:[StackView]-(<=1)-[DetailView]" > options:NSLayoutFormatAlignAllRight metrics:nil > views:myConstraintsViewDictionary]; > [myDetailView addConstraints:myConstraintsArray]; > > But I get this Error Message: > > Unable to parse constraint format: > Options mask required views to be aligned on a horizontal edge, which is not > allowed for layout that is also horizontal. > H:[StackView]-(<=1)-[DetailView] > ^ > I’m not sure what this means or if the above code is correct?
The NSLayoutFormatAlignAllLeft says that all the views mentioned in the format string should be aligned along their left edges. Which isn’t possible if you want them to be laid out horizontally. You should just use 0 for options. However: StackView is the parent of DetailView so you should be using | as the superview, so simply doing something like this should work. myConstraintsArray = [NSLayoutConstraint constraintsWithVisualFormat:@“H:|[DetailView]|" options:0 metrics:nil views:myConstraintsViewDictionary]; [myDetailView addConstraints:myConstraintsArray]; iain _______________________________________________ Cocoa-dev mailing list ([email protected]) 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 [email protected]
