You can add a UIPageControl underneath the iCarousel view:
UIPageControl pageControl = new UIPageControl(frame)); pageControl.Pages = carousel.NumberOfItems; pageControl.CurrentPage = carousel.CurrentItemIndex; // For some reason I needed to set the back ground color // for ValueChanged event to fire if you want pages to // change when the UIPageControl is tapped. pageControl.BackgroundColor = UIColor.Black; View.AddSubview(pageControl);
Then handle the carousel.ScrollEnd event:
carousel.ScrollEnd += (sender, e) => { pageControl.CurrentPage = carousel.CurrentItemIndex; };
And if you want to be able to change the page by tapping the UIPageControl:
pageControl.ValueChanged += (sender, e) => { carousel.CurrentItemIndex = pageControl.CurrentPage; };
With a UIPageControl, you tap on the left or right of the control to go to the previous or next page, but you can't go to a specific page by clicking a dot. See: https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIPageControl_Class/index.html
I added the iCarousel Component sample with the UIPageControl added here: https://github.com/jgold6/XamarinSupportSamples/tree/master/iOS-iCarouselWithPageControl