Как вывести текущее представление iCarousel поверх других представлений в iCarouselTypeWheel
Вопрос
Я хочу создать колесо, похожее на "http://www.asianpaints.com/royale" в iOS, до сих пор я использовал iCarousel
тип: iCarouselTypeWheel
.У меня это почти работает, но основная проблема в том, что центральный вид перекрывается следующими элементами.Пожалуйста, дайте мне знать, как исправить.
Заранее благодарю за любую помощь.
Решение
На самом деле вам нужно будет изменить значение преобразования z (которое возвращается) CATransform3DTranslate
функционировать в transformForItemViewWithOffset
метод.Хотя это своего рода хакерство.
Сделать это,
- Откройте свой
iCarousel.m
файл - Искать
-(CATransform3D)transformForItemViewWithOffset:(CGFloat)offset
метод Внутри
switch case
заявление, перейдите кiCarouselTypeWheel
а в остальной части вам нужно будет изменить строкуreturn CATransform3DTranslate(transform, 0.0f, -radius, offset * 0.01f);
к
return CATransform3DTranslate(transform, 0.0f, -radius, 0.0f);
Сохраните файл и запустите проект, чтобы посмотреть, даст ли это желаемый результат.
Другие советы
Стандартное колесо устанавливает «первый» элемент в крайнем левом или самом правом положении, поэтому, если вы хотите, чтобы карусель начиналась сверху, вам нужно установить тип карусели на iCarouselTypeCustom
и обеспечить преобразование в carousel:itemTransformForOffset:baseTransform:
вы можете взять преобразование из источника iCarousel в качестве основы