我有一个使用IB的uilabel设置并使用此代码:
// 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];
我的问题是,如何获得uilabel高度?
答案 0 :(得分:4)
试试这个......
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;
答案 1 :(得分:3)
检查bounds属性。
sv.bounds.size.height
答案 2 :(得分:2)
以下任何一种都应该做到这一点......
<ullabel>.frame.size.height
<uilabel>.bounds.size.height
使用NSLog来看看......
NSLog(@"%f", myLabel.bounds.size.height);
NSLog(@"%f", myLabel.frame.size.height);