Я хочу сделать карусель с линейным WITH wrap включенным (так что вы можете прокручивать бесконечно в любом направлении, и он будет просто обертываться). У них есть CarouselType.Linear, но он не включен , Кто-нибудь знает, как это сделать с iCarousel или UICollectionViews? Я не могу найти какие-либо хорошие ресурсы о том, как создать пользовательский макет iCarousel ... Есть ли хорошие ссылки?Linear Carousel with wrap enabled
this.Carousel = new CarouselView(frame)
{
DataSource = new CylindericalDataSource(this),
Delegate = new CylindericalDelegate(this)
};
this.Carousel.CarouselType = CarouselType.Linear;
this.Carousel.ConfigureView();
this.View.AddSubview(this.Carousel);
------------ EDIT --------------
Чтобы ответить на вопрос @ Рахул в
public override void DidScroll (CarouselView carouselView)
{
base.DidScroll (carouselView);
nint numOfItems = carouselView.NumberOfItems;
if (this._parentController != null &&
this._parentController._studioViewController != null &&
this._parentController._studioViewController.SuccessfullyReceivedProjectAndPageData() &&
this._parentController._studioViewController.HasFlowCardCarouselFinishedLoading() &&
numOfItems > 0)
{
// Enforce min and max values fro ScrollOffset so the user can't scroll the carousel off screen. This is required when wrapping is turned off.
nfloat maxScrollOffset = ((nfloat)numOfItems) - 1f;
nfloat minScrollOffset = 0f;
if (carouselView.ScrollOffset < minScrollOffset)
{
carouselView.ScrollOffset = minScrollOffset;
}
if (carouselView.ScrollOffset > maxScrollOffset)
{
carouselView.ScrollOffset = maxScrollOffset;
}
}
}
спасибо .. а что, если я хочу остановить карусель на последнем изображении/слайде? –
К сожалению, это не встроено при использовании этого. Я прикрепил свой код, который был ответственным за это поведение остановки на последнем изображении. Вы должны переопределить DidScroll и использовать его самостоятельно, используя ScrollOffset. Функция scrollOffset основана на индексах, а не на фрейме. – LampShade