我正在与iCarousel合作 - https://github.com/nicklockwood/iCarousel。
虽然我需要更改不同项目的宽度,但意味着为不同的项目制作不同的宽度。
不确定如何进行更改,如果您对此有任何经验,请提供帮助。
另一个问题是如何在滚动时只滚动1个项目。 - 表示只滚动到下一个项目,目前它将继续滚动到下一个项目......
非常感谢任何帮助。
答案 0 :(得分:2)
滚动时只需滚动1项,您必须添加gestureRecognizer&禁用Carousel的滚动
_myCarousel = [[iCarousel alloc] initWithFrame:CGRectMake(0,0, 310, 100)];
_myCarousel.type = iCarouselTypeCoverFlow2;
_myCarousel.scrollEnabled = NO;
UISwipeGestureRecognizer * swipeleft = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeleft:)];
swipeleft.direction = UISwipeGestureRecognizerDirectionLeft;
[_myCarousel addGestureRecognizer:swipeleft];
UISwipeGestureRecognizer * swiperight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swiperight:)];
swiperight.direction=UISwipeGestureRecognizerDirectionRight;
[_myCarousel addGestureRecognizer:swiperight];
_myCarousel.dataSource = self;
_myCarousel.delegate = self;
[myView addSubview:_myCarousel];
swipeleft:& swiperight:将为
-(void)swipeleft:(UISwipeGestureRecognizer*)gestureRecognizer
{
[_myCarousel scrollByNumberOfItems:1 duration:0.25];
}
-(void)swiperight:(UISwipeGestureRecognizer*)gestureRecognizer
{
[_myCarousel scrollByNumberOfItems:-1 duration:0.25];
}
按预期为我工作。 希望这会对你有帮助..
答案 1 :(得分:0)
问题1 :
iCarousel中的itemWidth属性是只读的,您应该使用carousel:viewForItemAtIndex:reusingView用于此目的:
@property (nonatomic, readonly) CGFloat itemWidth;
轮播中项目的显示宽度(只读)。这是 从传递到轮播的第一个视图自动导出 使用轮播:viewForItemAtIndex:reusingView:dataSource方法。 您还可以使用carouselItemWidth:delegate覆盖此值 方法,它将改变为旋转木马项目分配的空间(但是 不会调整项目视图的大小或缩放。)
问题2:
使用此属性滚动分页:
@property (nonatomic, assign, getter = isPagingEnabled) BOOL pagingEnabled;
启用和禁用分页。启用分页时,轮播将会 当用户滚动时停在每个项目视图,就像 UIScrollView的pagingEnabled属性。
答案 2 :(得分:0)
我尝试更改iCarousel,但如果我更改了itemWidth,它看起来无法顺利移动。
- 所以我试着写自己的旋转木马,现在就可以了。谢谢,大家。