あなたはコード
int lblY = 10; // As per your requirement
int viewBHT = 50; // As per your requirement
UILabel *lbl;
NSMutableArray *arrLbl = [[NSMutableArray alloc] initWithObjects:@"1",@"1",@"1",@"1",@"1",@"1", nil];
UIView *viewB = [[UIView alloc] init];
[viewB setFrame:CGRectMake(0, viewA.frame.origin.y, self.view.frame.size.width, viewBHT)];
[viewB setBackgroundColor:[UIColor darkGrayColor]];
[self.view addSubview:viewB];
for (int i = 0; i < arrLbl.count; i++)
{
lbl = [[UILabel alloc] initWithFrame:CGRectMake(10, lblY , viewB.frame.size.width - 20, 30)];
[lbl setText:[NSString stringWithFormat:@"Hello %d",i]];
[lbl setBackgroundColor:[UIColor lightGrayColor]];
[viewB addSubview:lbl];
lblY = lblY + lbl.frame.size.height + 10;
}
viewBHT = lbl.frame.size.height + lbl.frame.origin.y + 10;
[viewB setFrame:CGRectMake(0, 80, self.view.frame.size.width, viewBHT)];
UIView *viewC = [[UIView alloc] init];
[viewC setFrame:CGRectMake(0, viewB.frame.origin.y + viewB.frame.size.height + 10, self.view.frame.size.width, 50)];
[viewC setBackgroundColor:[UIColor blueColor]];
[self.view addSubview:viewC];
のこのタイプを使用することができ、これは..あなたを助けることを願っています! :)
いくつかのコードを見ずに答えるのは難しいです。私は各オブジェクト(object.frame.origin.Yとobject.frame.size.height)の高さとY位置を計算し、それらをNSMutablearrayにロードします。次に、すべての要素のサイズを変更する必要があるたびに呼び出すメソッドを作成します。このメソッドでは、配列要素に基づいて各要素の相対位置と高さを再割り当てします:[object setFrame:CGRecMake(...)]; – Alex
ストーリーボード(使用している場合)で行うことができます。BとCの等高さの制約を設定し、必要に応じてそれらの比率を変更するだけです。その後、Bの高さの制約が更新されるたびにCも自動的に更新されます'layoutIfNeeded' with – Tj3n
' UILabels'をObject ** C **にどのように追加しますか? –