我正在使用尼克洛克伍德传送带,类型是轮转盘。我将图片用作旋转木马中的项目。问题是,当我旋转传送带时,图像也旋转,即考虑人物图像,然后人物图像倾斜,这是我不想要的,即我不想在旋转整个传送带时旋转该特定图像。任何人都可以帮忙吗?不想旋转传送带上的图像旋转传送带
回答
尝试有条件地旋转取决于设备定向在图像中的
- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view;
委托方法。
我不是旋转设备,旋转木马只能旋转,但其中的图像应保持原样,他们的位置应该只是改变 –
查看文件iCarousel.m,并找到- (CATransform3D)transformForItemView:(UIView *)view withOffset:(CGFloat)offset
方法;在它的内部,你会发现这个块:
case iCarouselTypeWheel:
case iCarouselTypeInvertedWheel:
{
NSInteger count = [self valueForTransformOption:iCarouselTranformOptionCount withDefault:
MIN(numberOfVisibleItems, numberOfItems + numberOfPlaceholdersToShow)];
CGFloat arc = [self valueForTransformOption:iCarouselTranformOptionArc withDefault:M_PI * 2.0f];
CGFloat radius = [self valueForTransformOption:iCarouselTranformOptionRadius withDefault:itemWidth * (CGFloat)count/arc];
CGFloat angle = [self valueForTransformOption:iCarouselTranformOptionAngle withDefault:arc/(CGFloat)count];
if (type == iCarouselTypeInvertedWheel)
{
radius = -radius;
angle = -angle;
}
if (vertical)
{
transform = CATransform3DTranslate(transform, -radius, 0.0f, 0.0f);
/* this */ transform = CATransform3DRotate(transform, angle * offset, 0.0f, 0.0f, 1.0f);
return CATransform3DTranslate(transform, radius, 0.0f, offset * 0.01f);
}
else
{
transform = CATransform3DTranslate(transform, 0.0f, radius, 0.0f);
/* this */ transform = CATransform3DRotate(transform, angle * offset, 0.0f, 0.0f, 1.0f);
return CATransform3DTranslate(transform, 0.0f, -radius, offset * 0.01f);
}
}
尝试简单地注释掉两行:
transform = CATransform3DRotate(transform, angle * offset, 0.0f, 0.0f, 1.0f);
,并看看会发生什么;我猜这个脸不会被旋转,但那么你可能需要调整翻译...
感谢您的答案,我只为此尝试,但还没有找到解决方案,我正在尝试,并会发布如果发现它,如果其他人已经发现,那么请帮助 –
看执行- (CATransform3D)transformForItemView:(UIView *)view withOffset:(CGFloat)offset;
找到case iCarouselTypeWheel:
和case iCarouselTypeInvertedWheel:
块。
变化产生的最终变换(对于垂直和水平的情况下)的代码扭转施加的旋转:
transform = CATransform3DTranslate(transform, 0.0f, radius, 0.0f);
transform = CATransform3DRotate(transform, angle * offset, 0.0f, 0.0f, 1.0f);
// this is the transform the existing code returns...
transform = CATransform3DTranslate(transform, 0.0f, -radius, offset * 0.01f);
// instead you reverse the rotation before returning...
return CATransform3DRotate(transform, -(angle * offset), 0.0f, 0.0f, 1.0f);
我希望帮助。
使用上述答案中的代码,我无法真正解决这个问题。我重用了部分评论,但没有使用代码。这对我有效。
if (_vertical)
{
transform = CATransform3DTranslate(transform, -radius, 0.0, 0.0);
transform = CATransform3DRotate(transform, angle * offset, 0.0, 0.0, 1.0);
transform = CATransform3DTranslate(transform, radius, 0.0, offset * 0.01);
return CATransform3DRotate(transform, -(angle * offset), 0.0, 0.0, 1.0);
}
else
{
transform = CATransform3DTranslate(transform, 0.0, radius, 0.0);
transform = CATransform3DRotate(transform, angle * offset, 0.0, 0.0, 1.0);
transform = CATransform3DTranslate(transform, 0.0, -radius, offset * 0.01);
return CATransform3DRotate(transform, -(angle * offset), 0.0, 0.0, 1.0);
}
- 1. Plone:如何让传送带中的图像自动旋转?
- 2. 带图像旋转的UIscrollView
- 3. 带旋转图标的旋转轮
- 4. Twitter Bootstrap传送带:传送带外部有旋转木马指示符转盘Div
- 5. 图像在自举传送带不填充传送带区域
- 6. 我该如何自动旋转此传送带?
- 7. jQuery内联文本滚动/旋转/传送带效果
- 8. jQuery传送带转换
- 9. 较小的自举传送带内较大的自举传送带 - 功能问题与较小的旋转
- 10. 如何在Broadleaf-Ecommerce上创建带有旋转图像的传送带类型横幅。
- 11. 移动图像传送带?
- 12. javascript。上传前旋转图像
- 13. 带格栅图像的旋转标签
- 14. jquery带图像旋转的文本
- 15. 传送带内的旋转木马项目不能在自举中工作
- 16. 图像不旋转div内的旋转
- 17. 引导传送带图像不适用
- 18. Bootstrap传送带图像不响应
- 19. Bootstrap:传送带图像不移动
- 20. 想要生成带有猫头鹰图像的旋转木马
- 21. PHP iphone/iOS6的上传旋转的问题:什么是保存旋转图像
- 22. 如何旋转传送带项目并隐藏最近的一个
- 23. PHP上传,带EXIF基于Orientation的旋转
- 24. 如何使用一个jquery脚本文件在同一页面上创建2个图像旋转传送带
- 25. Bootstrap传送带转换故障
- 26. Angular JS转发器+ Bootstrap传送带
- 27. 将图像上传到服务器上之前旋转图像
- 28. 像youtube一样的墙上传送带
- 29. 带旋转的icarousel类。
- 30. 带OpenVG的旋转文本
你的意思是你想让人的脸部始终保持垂直? – sergio
是的,人的脸应该保持垂直 –