Ios 伊卡鲁塞尔并不顺利

Ios 伊卡鲁塞尔并不顺利,ios,icarousel,Ios,Icarousel,我用伊卡鲁塞尔制作了一个图像卷轴。代码是: - (CATransform3D)carousel:(iCarousel *)_carousel itemTransformForOffset:(CGFloat)offset baseTransform:(CATransform3D)transform { CGFloat count = 5; CGFloat spacing = 0.9f; CGFloat arc = M_PI * 0.3f; CGFloat r

我用伊卡鲁塞尔制作了一个图像卷轴。代码是:

- (CATransform3D)carousel:(iCarousel *)_carousel itemTransformForOffset:(CGFloat)offset baseTransform:(CATransform3D)transform 
{
    CGFloat count = 5; 
    CGFloat spacing = 0.9f; 
    CGFloat arc = M_PI * 0.3f; 
    CGFloat radius = fmaxf(140.0 * spacing / 2.0f, 140.0 * spacing / 2.0f / tanf(arc/2.0f/count));
    CGFloat angle = offset / count * arc;
    radius = -radius;
    angle = -angle;
    transform = CATransform3DTranslate(transform, radius * sin(angle),radius * cos(angle) - radius, 0.0f);                    
    return transform;                                                    
 }
但是当我滚动图像时,会出现一种丑陋的效果,过渡不平滑,图像会以一种不平稳的方式显示出来,但我希望显示得更加流畅。你能帮助我吗?谢谢


编辑:问题是当我滚动图像时,过渡不平滑,图像出现在后面图像的前面,与其他图像分离。实际上,只有当滚动结束时,图像才会出现在其他图像之前,这会造成不良影响。

在上次实现iCarousel时,我们遇到了类似的问题。下面是我们如何修复它的:

- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value {

    if (option == iCarouselOptionSpacing) {
    return value;// * 1.05f;
    } else if(option == iCarouselOptionWrap) {
    return NO;
    } else if(option == iCarouselOptionVisibleItems) {
    return 3;
    }
    return value;
}
具体来说,您可能需要的是最后一个else if语句,其中我们指定了可见项的数量。它的默认值为1,这意味着当你浏览新的图像时,它们会以一种急促的方式出现。通过指定3,可以保证上一个项目、当前项目和下一个项目始终加载到内存中,因此它们之间的滚动总是平滑的。如果这不能解决您的问题,请将数字3增加到任何有效的数字

另外,不要忘记将iCarousel的委托设置为self


祝你好运。

在上次实现iCarousel时,我们遇到了类似的问题。下面是我们如何修复它的:

- (CGFloat)carousel:(iCarousel *)carousel valueForOption:(iCarouselOption)option withDefault:(CGFloat)value {

    if (option == iCarouselOptionSpacing) {
    return value;// * 1.05f;
    } else if(option == iCarouselOptionWrap) {
    return NO;
    } else if(option == iCarouselOptionVisibleItems) {
    return 3;
    }
    return value;
}
具体来说,您可能需要的是最后一个else if语句,其中我们指定了可见项的数量。它的默认值为1,这意味着当你浏览新的图像时,它们会以一种急促的方式出现。通过指定3,可以保证上一个项目、当前项目和下一个项目始终加载到内存中,因此它们之间的滚动总是平滑的。如果这不能解决您的问题,请将数字3增加到任何有效的数字

另外,不要忘记将iCarousel的委托设置为self


祝你好运。

谢谢你,但我可能没有很好地解释我的问题。问题是,当中心图像出现在其他图像之前时,会产生丑陋的效果。中心图像不是以平滑的方式显示,而是与其他图像分离。另一个问题可能是旋转木马视图没有占据屏幕的全部宽度。不过,我可能没有完全理解你的问题。你能发布你的问题的截图吗?我不能发布屏幕,因为只有当我滚动图片时问题才明显。中心图像以平面的方式出现在其他图像之前。谢谢,但可能我没有很好地解释我的问题。问题是,当中心图像出现在其他图像之前时,会产生丑陋的效果。中心图像不是以平滑的方式显示,而是与其他图像分离。另一个问题可能是旋转木马视图没有占据屏幕的全部宽度。不过,我可能没有完全理解你的问题。你能发布你的问题的截图吗?我不能发布屏幕,因为只有当我滚动图片时问题才明显。中心图像以平坦的方式出现在其他图像之前。