0

メインビューにビューを追加しています。最後に挿入されたビュー幅を見つける方法は?

  NSArray *noPotions = [NSArray arrayWithObjects:@"1",@"2",@"3",@"4", nil];
int list = [noPotions count];

int lastPosition = 10;

int widthValue = 100;

for (int i = 0; i < list ; i++) {
    UIView  *newView = [[UIView alloc]initWithFrame:CGRectMake(lastPosition, 10, widthValue, 60)];
    [newView.layer setBorderColor:[[UIColor blueColor] CGColor]];
    [self.view addSubview:newView];
    lastPosition = newView.bounds.size.width + 20;
    newView.layer.borderWidth = 4;

    [newView release];

このコードでは、最後の位置は常に120になります。誰かplsが私を助けてくれますか?

4

1 に答える 1

0

最初に、FORループ内のUIViewにいつでもタグを付けることができます。

for (int i = 0; i < list ; i++) 
{
     UIView  *newView = [[UIView alloc]initWithFrame:CGRectMake(lastPosition, 10, widthValue, 60)];
     newView.tag = i;
     [newView.layer setBorderColor:[[UIColor blueColor] CGColor]];
     [self.view addSubview:newView];
     lastPosition = newView.bounds.size.width + 20;
     newView.layer.borderWidth = 4;

     [newView release];
}

後で、任意のビューにアクセスするために、いつでもタグから取得できます。

配列の最後の要素にあるビューが必要だとします。

UIView* latestView = [self.view viewWithTag:[list count]-1];
于 2012-09-26T10:36:34.503 に答える