как прокручивать все изображения в icarousel

81
11

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

Это мой 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;
}

спросил(а) 2020-04-04T00:16:55+03:00 5 месяцев, 4 недели назад
1
Решение
129

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

ответил(а) 2020-04-04T00:32:29.726731+03:00 5 месяцев, 4 недели назад
-4

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

    - (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);
}
}

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

ответил(а) 2020-04-04T00:16:55+03:00 5 месяцев, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема