0

小さな画像でuiscrollviewを実装しようとしています。

  1. スクロールが終了しても、すべての端のuiscrollviewの最後の画像が中央に残り、片側が空のままになる必要があります。これで、スクロールが終了しても最後の画像が横に残ります。

  2. 影を付けるには、どの画像がscollviewの中央にあるかを知る必要があります。

    jugadorSlide.pagingEnabled = YES;
    NSError *error = nil;
    fotosJugadores = [[NSFileManager defaultManager] contentsOfDirectoryAtPath: @"/Users/exular/Developer/GBC/exular/GBC/Caras/" error: &error];
    
    NSInteger numberOfViews = [fotosJugadores count];
    for (int i = 0; i < numberOfViews; i++) {
    
        UIImage *myImage = [UIImage imageNamed:[fotosJugadores objectAtIndex:i]];
        CGFloat yOrigin = i * myImage.size.width;
        UIImageView *awesomeView = [[UIImageView alloc] initWithFrame:CGRectMake(yOrigin, 0, myImage.size.width, myImage.size.height)];
        awesomeView.alpha = 0.5;
        awesomeView.image = myImage;
        [self.jugadorSlide addSubview:awesomeView];
        awesomeView=nil;
    }
    jugadorSlide .contentSize = CGSizeMake(65 * numberOfViews,78);
    jugadorSlide.layer.cornerRadius = 11;
    jugadorSlide.layer.masksToBounds = YES;
    

助けてくれて本当にありがとうございます。

4

1 に答える 1

1

最初と最後の画像を中央に配置するには、最初の画像の前と最後の画像の後に空のスペースを追加するだけです。言い換えれば、で開始し、幅に追加しますyOrigin(私65はそれがあなたの画像の幅であると仮定しています):65contentSize65

...
CGFloat yOrigin = i * myImage.size.width + 65;
...
jugadorSlide.contentSize = CGSizeMake(65 * numberOfViews + 65,78);
...

中央にある画像を見つけるには、UIScrollViewDelegateメソッド内に以下を追加しますscrollViewDidEndDecelerating:

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    int currentIndex = roundf(scrollView.contentOffset.x / 65) - 1;
    UIImageView *currentImage = [scrollView viewWithTag:currentIndex];
}

currentImageを簡単に取得するには、画像を作成するときに画像にタグを追加します。

...
awesomeView.tag = i;
...
于 2012-05-11T16:40:23.920 に答える