Reputation: 920
I have UItoolbar
in which added two items 1. UITextView
and 2. UIButton
.
The Property of UITextview
is to autogrowing based on entered text.
While growing of height of UITextview
i want to restrict UIButton
height, i.e UIButton
height should not be increase.
[_toolbar setItems:[NSArray arrayWithObjects:barButtonItemCommentText,barButtonItemSubmit,nil]];
submitBtn.translatesAutoresizingMaskIntoConstraints = NO;
textView.translatesAutoresizingMaskIntoConstraints = NO;
_toolbar.translatesAutoresizingMaskIntoConstraints = NO;
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-8-[textView]-79-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(textView)]];
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-8-[textView]-8-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(textView)]];
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-[submitBtn]-8-|" options:0 metrics:nil views:NSDictionaryOfVariableBindings(submitBtn)]];
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-8-[submitBtn]-8-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:NSDictionaryOfVariableBindings(submitBtn)]];
[_toolbar addConstraint:[NSLayoutConstraint constraintWithItem:submitBtn
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:60]];
[textView setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisHorizontal];
[textView setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[_toolbar setContentCompressionResistancePriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
[_toolbar addConstraint:[NSLayoutConstraint constraintWithItem:_toolbar attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationLessThanOrEqual toItem:nil attribute:NSLayoutAttributeNotAnAttribute multiplier:1.0f constant:MaxToolbarHeight]];
For reference , see the attached screen-shot:
Upvotes: 1
Views: 182
Reputation: 2417
The below mentioned constraint is making it to stretch in vertical direction as it ask to be always 8 pixels from top and bottom.
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-8-[submitBtn]-8-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:NSDictionaryOfVariableBindings(submitBtn)]];
If you change it to constant height than it will not grow vertically, in this case always a height of 24.
[_toolbar addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:[submitBtn(24)]-8-|" options:NSLayoutFormatAlignAllBaseline metrics:nil views:NSDictionaryOfVariableBindings(submitBtn)]];
Upvotes: 2