不同物品的宽度不同 - 在iCarousel中

时间:2015-07-03 11:17:07

标签: ios objective-c icarousel

我正在与iCarousel合作 - https://github.com/nicklockwood/iCarousel

虽然我需要更改不同项目的宽度,但意味着为不同的项目制作不同的宽度。

不确定如何进行更改,如果您对此有任何经验,请提供帮助。

另一个问题是如何在滚动时只滚动1个项目。 - 表示只滚动到下一个项目,目前它将继续滚动到下一个项目......

非常感谢任何帮助。

3 个答案:

答案 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,它看起来无法顺利移动。

- 所以我试着写自己的旋转木马,现在就可以了。谢谢,大家。