2

65x78サイズの画像でスクロールビューを作成しています。コードは次のとおりです。

numberOfViews = [fotosJugadores count];

    for (int i = 0; i <    [fotosJugadores count]; i++) {

        UIImage *myImage = [UIImage imageNamed:[fotosJugadores objectAtIndex:i]];
        CGFloat yOrigin = i * myImage.size.width + 120;
        NSLog(@"my image %@", myImage);
        UIImageView *awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, myImage.size.width, myImage.size.height)];
        awesomeView.tag = i;
        awesomeView.image = myImage;
        awesomeView.alpha = 0.5f;
        awesomeView.backgroundColor = [UIColor blackColor];
        [self.jugadorSlide addSubview:awesomeView];
        awesomeView=nil;

    }

    [jugadorSlide setBackgroundColor:[UIColor blackColor]];
    jugadorSlide.contentSize = CGSizeMake(65 * numberOfViews+240,78);
    jugadorSlide.layer.cornerRadius = 11;
    jugadorSlide.layer.masksToBounds = YES;
    [jugadorSlide setContentOffset:CGPointMake(((65 * numberOfViews)/2), 0)];
    //jugadorSlide.decelerationRate = UIScrollViewDecelerationRateNormal;
    [self scrollViewDidEndDragging:jugadorSlide willDecelerate:NO];

画像間に多かれ少なかれ3ポイントのギャップを追加しようとしています。最後と最初の画像とスクロールビューの端の間にスペースを残すために、コンテンツサイズと画像x原点にスペースを追加して、常にスクロールビューの中央で終了するようにします。さまざまなアプローチを試しましたが、画像が重なってしまいます。

ありがとう

4

1 に答える 1

1

画像間にギャップを追加していません。yOrigin 値は常に前の画像の隣にあります。

次のように、イメージ インデックスのマージン (この場合は 3 ポイント) を原点に追加する必要があります。CGFloat yOrigin = i * (myImage.size.width + 3) + 120;

于 2012-05-30T09:54:37.450 に答える