2012-03-12 4 views
0

Я хочу прокрутить все изображения в виде карусели. Но, на мой взгляд, анимация начинает двигаться, когда я просматриваю среднее изображение. Если я касаюсь других изображений рядом с ним, они не перемещаются. Я использую кнопки в методе viewForItemAtIndex. Вы знаете, как я могу перемещать все видимые изображения?как прокрутить все изображения в icarousel

Это мой viewForItemAtIndexMethod:

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(ReflectionView *)view 
{ 


UIButton* button = nil; 
if (view == nil) 
{ 
    UIImage *image = [arrKitapKapaklari objectAtIndex:index]; 
    view = [[[ReflectionView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, image.size.width, image.size.height)] autorelease]; 

    //no button available to recycle, so create new one 
    [view setBackgroundColor:[UIColor clearColor]]; 

    button = [UIButton buttonWithType:UIButtonTypeCustom]; 
    button.frame = CGRectMake(0.0f, 0.0f, image.size.width, image.size.height); 
    [button setTitleColor:[UIColor clearColor] forState:UIControlStateNormal]; 
    [button setBackgroundImage:image forState:UIControlStateNormal]; 
    button.titleLabel.font = [button.titleLabel.font fontWithSize:50]; 
    [button addTarget:self action:@selector(buttonTapped:) forControlEvents:UIControlEventTouchUpInside]; 
    button.tag = 99; 
    [view update]; 
    [view addSubview:button]; 

} 
else 
{ 
    button = (UIButton *)[view viewWithTag:99]; 
} 


[button setTitle:[NSString stringWithFormat:@"%i", index] forState:UIControlStateNormal]; 

return view; 
} 
+0

Какая у вас рамка iCarousel? Вы инициализируете его через IB или в коде? –

+0

Я инициализирован в коде. Но я думаю, что речь идет о методах делегата icarousel. Я пытаюсь решить, но я новичок. Я не понял всех методов. –

+0

Как я помню, у iCarousel есть распознаватель жесты и он работает на весь вид. Можете ли вы разместить фрагмент кода, где вы настраиваете карусель? –

ответ

0

Я думаю, что это что-то не так с вашей рамой iCarousel - возможно, касается других элементов вне рамы, а распознаватели жестов iCarousel не получат прикосновений. Другая возможность заключается в том, что некоторые другие элементы вашего представления захватывают и не передают это iCarousel. iCarousel предназначен для обработки всех касаний (не только от основного элемента). Как я писал в комментарии ниже вашего сообщения, вы уверены, что все в порядке с настройкой карусели?

+0

да, вы пишете. Большое спасибо.. –

-1

это мой код для метода вы имеете дело с (теперь я использую образа ж/этикеток под каждое изображение, изображение хранится в массиве) ,

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
    { 

     if (index < [items count]) { 
      image = [UIImage imageNamed:[self.hldImage objectAtIndex:index]]; 
      view = [[UIImageView alloc] initWithImage:image]; 


      UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, image.size.height,image.size.width, 50)]; 
      NSString *carName = [NSString stringWithFormat:[hldName objectAtIndex:index]]; 
      label.backgroundColor = [UIColor clearColor]; 
      label.text = carName; 
      label.textColor = [UIColor whiteColor]; 
      label.textAlignment = UITextAlignmentCenter; 
      label.lineBreakMode = UILineBreakModeWordWrap; 
      label.numberOfLines = 99; 
      [view addSubview:label]; 
      [view setTag:index+1]; 

     } 
     return view; 
    } 

это код, я реализовал, чтобы принести изображения в центре (это в ICarousel.m)

- (void)didTap:(UITapGestureRecognizer *)tapGesture 
{ 
    NSInteger index = [self indexOfItemView:[tapGesture.view.subviews lastObject]]; 
    if (centerItemWhenSelected && index != self.currentItemIndex) 
    { 
     NSLog(@"tapped item not at center, index = %i",index); 
     [self scrollToItemAtIndex:index animated:YES]; 
     NSUInteger tag = index; 
    } 
    if ([delegate respondsToSelector:@selector(carousel:didSelectItemAtIndex:)]) 
    { 
     [delegate carousel:self didSelectItemAtIndex:index]; 
     NSUInteger tag = index; 
    } 
    if (self.currentItemIndex) 
    { 
     NSLog(@"Current index item, index = %i",index); 
    } 
} 

все мои изображения в Карусели есть тег, связанный с ними.

+0

Это не то, что я хочу. В моем карусельном представлении видны 4 изображения. Чтобы начать анимацию, мне нужно прокрутить элемент центра. Если я попробую прокрутить другие изображения, это не сработает. Анимация не начинает двигаться. –

+0

Я добавил метод, который вы внедрили. вы можете игнорировать мои метки b/c, это текстовое поле под каждым изображением. но hldImage - это массив, содержащий изображения. – DJPlayer