开发者

UIView with adaptable height according to content - Objective-c

开发者 https://www.devze.com 2023-02-08 06:30 出处:网络
I would like to create an UIView that fits his content. The content is an UILabel with dinamic text. UIView *myview = [ [UIView alloc ] initWithFrame:CGRectMake(10.0, 10.0, 700.0, 100.0)];

I would like to create an UIView that fits his content. The content is an UILabel with dinamic text.

UIView *myview = [ [UIView alloc ] initWithFrame:CGRectMake(10.0, 10.0, 700.0, 100.0)];
myview.backgroundColor = [UIColor redColor];

[self.view addSubview:myview];

UILabel *myLabel = [ [UILabel alloc ] initWithFrame:CGRectMake(10.0, 10.0, 500.0, 43.0) ];
myLabel.textAlignment = UITextAlignmentLeft;
myLabel.textColor = [UIColor whiteColor];
myLabel.backgroundColor = [UIColor blackColor];
myLabel.font = [UIFont fontWithName:@"Arial Rounded MT Bold" size:(36.0)];
[myView addSubview:myLabel];
myLabel.numberOfLines = 0;
myLabel.text = @"This is an UILabel. This is an UILabel. This is an UILabel. This is an U开发者_StackOverflowILabel. This is an UILabel. This is an UILabel. This is an UILabel. ";
[myLabel sizeToFit];

I attach a screenshot:

Screenshot


Try this after [myLabel sizeToFit]:

[myView setFrame:myLabel.frame];


This will do the trick:

NSString *tempString = @"This is an UILabel. This is an UILabel. This is an UILabel. This is an UILabel. This is an UILabel. This is an UILabel. This is an UILabel. ";

    CGSize constSize = { 260.0f, 20000.0f };

CGSize textSizeTitle = [tempString sizeWithFont:[UIFont systemFontOfSize:20.0] constrainedToSize:constSize lineBreakMode:UILineBreakModeWordWrap];

UILabel *EventTitle = [[UILabel alloc] initWithFrame:CGRectMake(10, 10, 260,textSizeTitle.height)];
[EventTitle setText:tempString];
[EventTitle setBackgroundColor:[UIColor clearColor]];
[EventTitle setFont:[UIFont fontWithName:@"TrebuchetMS-Bold" size:20]];
[EventTitle setNumberOfLines:0];
[EventTitle setUserInteractionEnabled:NO];
[EventTitle setTextColor:[UIColor whiteColor]];
[newsBox addSubview:EventTitle];

Just ensure, font size of textSizeTitle & EventTitle should be same.

0

精彩评论

暂无评论...
验证码 换一张
取 消