How to set UILabel only width and height and constraints programmatically How to set UILabel only width and height and constraints programmatically ios ios

How to set UILabel only width and height and constraints programmatically


To create label with height and width constraints here is the constraints...And don't forget to add label in to view with addSubview method

UILabel *Label = [[UILabel alloc] init];[Label setTranslatesAutoresizingMaskIntoConstraints:NO];  [self.view addSubview:Label];// Width constraint[Label addConstraint:[NSLayoutConstraint constraintWithItem:Label                                                      attribute:NSLayoutAttributeWidth                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:nil                                                      attribute: NSLayoutAttributeNotAnAttribute                                                     multiplier:1                                                       constant:200]];// Height constraint[Label addConstraint:[NSLayoutConstraint constraintWithItem:Label                                                      attribute:NSLayoutAttributeHeight                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:nil                                                      attribute: NSLayoutAttributeNotAnAttribute                                                     multiplier:1                                                       constant:21]];

Swift 4:

label.translatesAutoresizingMaskIntoConstraints = falselabel.addConstraint(NSLayoutConstraint(item: label, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 21))label.addConstraint(NSLayoutConstraint(item: label, attribute: .width, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 200))

And In Swift

 Label.setTranslatesAutoresizingMaskIntoConstraints(false) self.view.addSubview(Label) Label.addConstraint(NSLayoutConstraint(item: Label, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 21)) Label.addConstraint(NSLayoutConstraint(item: Label, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 200))  

Check this link for more detail

UPDATE
As you update your question, here is my updated answer...

UILabel *Label1 = [[UILabel alloc] init];[Label1 setTranslatesAutoresizingMaskIntoConstraints:NO];UILabel *Label2 = [[UILabel alloc] init];[Label2 setTranslatesAutoresizingMaskIntoConstraints:NO];Label1.text = @"Label1";Label1.backgroundColor = [UIColor blueColor];Label2.text = @"Label2";Label2.backgroundColor = [UIColor redColor];[self.view addSubview:Label1];[self.view addSubview:Label2];// Width constraint[Label1 addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                  attribute:NSLayoutAttributeWidth                                                  relatedBy:NSLayoutRelationEqual                                                     toItem:nil                                                  attribute: NSLayoutAttributeNotAnAttribute                                                 multiplier:1                                                   constant:280]];// Height constraint[Label1 addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                  attribute:NSLayoutAttributeHeight                                                  relatedBy:NSLayoutRelationEqual                                                     toItem:nil                                                  attribute: NSLayoutAttributeNotAnAttribute                                                 multiplier:1                                                   constant:21]];// CenterX constraint[self.view addConstraint:[NSLayoutConstraint constraintWithItem:self.view                                                   attribute:NSLayoutAttributeCenterX                                                   relatedBy:NSLayoutRelationEqual                                                      toItem:Label1                                                   attribute: NSLayoutAttributeCenterX                                                  multiplier:1                                                    constant:0]];// Top constraint[self.view addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                      attribute:NSLayoutAttributeTop                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:self.topLayoutGuide                                                      attribute: NSLayoutAttributeBottom                                                     multiplier:1                                                       constant:40]];// label2[self.view addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                      attribute:NSLayoutAttributeLeading                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:Label2                                                      attribute: NSLayoutAttributeLeading                                                     multiplier:1                                                       constant:0]];// label2.Height = label1.Height[self.view  addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                      attribute:NSLayoutAttributeHeight                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:Label2                                                      attribute: NSLayoutAttributeHeight                                                     multiplier:1                                                       constant:0]];// label2.width = label1.width[self.view  addConstraint:[NSLayoutConstraint constraintWithItem:Label1                                                   attribute:NSLayoutAttributeWidth                                                   relatedBy:NSLayoutRelationEqual                                                      toItem:Label2                                                   attribute: NSLayoutAttributeWidth                                                  multiplier:1                                                    constant:0]];// label2.Top[self.view addConstraint:[NSLayoutConstraint constraintWithItem:Label2                                                      attribute:NSLayoutAttributeTop                                                      relatedBy:NSLayoutRelationEqual                                                         toItem:Label1                                                      attribute: NSLayoutAttributeBottom                                                     multiplier:1                                                       constant:34]];  

Result Screen

enter image description here


i try this method to change height as text length in your label.

put viewdidload

[yourlabel setNumberOfLines:0];    CGRect mainframe = _lbl_board.frame;    mainframe.size.height =  [self getLabelHeight:yourlabel];    yourlabel.frame = mainframe;

method

- (CGFloat)getLabelHeight:(UILabel*)label{    CGSize constraint = CGSizeMake(label.frame.size.width, CGFLOAT_MAX);    CGSize size;    NSStringDrawingContext *context = [[NSStringDrawingContext alloc] init];    CGSize boundingBox = [label.text boundingRectWithSize:constraint                                                  options:NSStringDrawingUsesLineFragmentOrigin                                               attributes:@{NSFontAttributeName:label.font}                                                  context:context].size;    size = CGSizeMake(ceil(boundingBox.width), ceil(boundingBox.height));    return size.height;}


In Swift 3 : (just replace .Height by .height and .Equal by .equal)

self.addConstraint(NSLayoutConstraint(item: self, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1, constant: 35))


matomo