Как вывести текущее представление iCarousel поверх других представлений в iCarouselTypeWheel

StackOverflow https://stackoverflow.com//questions/22011515

  •  21-12-2019
  •  | 
  •  

Вопрос

Я хочу создать колесо, похожее на "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 в качестве основы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top