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

要让第一张和最后一张图片位于中心,只需在第一张图片之前和最后一张图片之后添加一个空白区域。换句话说:从yOriginat开始65并添加65contentSize宽度(我假设这65是您的图像宽度):

...
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 回答