2011-12-08 9 views
0

UIViewを動的に埋め込む方法があるかどうかを知りたい。UIViewにラベルとボタンを動的に配置

たとえば、2つのUILabelsが行として整列されているとします。そのテキストは再び動的です。

最初UILabelのテキストが複数の行を持っている場合、私は私が

[mylabelというsizeToFit]を呼び出すことができます知っています。

内容に基づいてサイズを変更する

この情報をUIViewのすべてのサブビュー(私の場合はUILabels)に伝播して、それを適切に再配置する方法はありますか?

私は十分にはっきりしていることを望みます。

答えて

1

行として整列する必要がある2つのラベルの場合は、CGRectGetMaxY関数を使用できます。たとえば:

NSString *text = @"Text to display"; 
CGSize size = [text sizeWithFont:[UIFont fontWithName:@"HelveticaNeue" size:10.0f] constrainedToSize:CGSizeMake(100.0f, FLT_MAX) lineBreakMode:UILineBreakModeTailTruncation]; 
UILabel *first = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, 20.0f, 100.0f, size.height)]; 
[first setText:text]; 

UILabel *first = [[UILabel alloc] initWithFrame:CGRectMake(10.0f,20.0f, 100.0f, 200.0f)]; 
[first setText:@"Text to display"]; 
[first sizeToFit]; 
[self.view addSubview:first]; 
[first release]; 

UILabel *second = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, CGRectGetMaxY(first.frame), 100.0f, 200.0f]; 
[second setText:@"Text to display"]; 
[second sizeToFit]; 
[self.view addSubview:second]; 
[second release]; 

UILabel *third = [[UILabel alloc] initWithFrame:CGRectMake(10.0f, CGRectGetMaxY(second.frame), 100.0f, 200.0f]; 
[third setText:@"Text to display"]; 
etc... 

また、これをやって、そのテキストのパラメータに応じてラベルの予想サイズを知ることができます

関連する問題