UILabel height?

2019-04-17 00:28发布

问题:

I have an uilabel setup with IB and with this code:

// setup label
sv.text =  @"When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation."; 
sv.lineBreakMode = UILineBreakModeWordWrap; 
sv.numberOfLines = 0;
[sv sizeToFit];

my question is, how do I get the uilabel height?

回答1:

Try this one.....

            CGSize maximumSize1 = CGSizeMake(100, 9999);
            NSString *myString1 = @"When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.When in the Course of human events, it becomes necessary for one people to dissolve the political bands which have connected them with another, and to assume among the powers of the earth, the separate and equal station to which the Laws of Nature and of Nature's God entitle them, a decent respect to the opinions of mankind requires that they should declare the causes which impel them to the separation.";
            UIFont *myFont1 = [UIFont boldSystemFontOfSize:14];//[UIFont fontWithName:@"Helvetica" size:14];


            UILabel *lbl_Title=[[UILabel alloc] init];
            lbl_Title.lineBreakMode=UILineBreakModeClip;
            CGSize myStringSize1 = [myString1 sizeWithFont:myFont1 
                                         constrainedToSize:maximumSize1 
                                             lineBreakMode:lbl_Title.lineBreakMode];
            lbl_Title.frame=CGRectMake(20, 10, myStringSize1.width, myStringSize1.height);
            lbl_Title.font=myFont1;
            //      lbl_Title.font=[UIFont boldSystemFontOfSize:14];
            lbl_Title.backgroundColor=[UIColor clearColor];
            lbl_Title.numberOfLines=100;
            lbl_Title.text=myString1;


回答2:

Check the bounds property.

sv.bounds.size.height


回答3:

either of the following should do the trick...

<ullabel>.frame.size.height
<uilabel>.bounds.size.height

Use NSLog to take a look...

NSLog(@"%f", myLabel.bounds.size.height);
NSLog(@"%f", myLabel.frame.size.height);