Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Reduce dot size or padding to fit all page indicators on screen with UIPageControl

I have a UIPageControl that has 22 pages, therefore 22 page indicator dots. In landscape on iPhone they're all visible with plenty of space on the left and right, but in portrait there's not enough horizontal space to display all of the dots (at least on iPhone 4 and 5), so two aren't visible and the outer two are cut in half.

I am looking for a way to reduce the size of the dots or reduce the amount of padding between the dots to ensure all dots fit on screen in portrait. How can that be accomplished?

enter image description here

like image 745
Jordan H Avatar asked Nov 08 '14 18:11

Jordan H


3 Answers

If you have that many dots, I would seriously consider a different control. But if you want to stick to UIPageControl, I would just scale it down to fit on screen, with something like:

pageControl.transform = CGAffineTransformMakeScale(0.7, 0.7);

This scales it down to 70% of its initial size - I leave it to you to determine the best scale for your screen size/number of pages.

like image 66
pbasdf Avatar answered Nov 20 '22 11:11

pbasdf


Swift 3 version code: based on pbasdf answer.

pageControl.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)
like image 6
mriaz0011 Avatar answered Nov 20 '22 11:11

mriaz0011


You should really not use a UIPageControl for something that has 22 pages. How about trying something like a label that returns a number instead. Will make you app look a lot cleaner.

Although if you REALLY want to use the pageControl, pbasdf's answer is spot on. pageControl.transform = CGAffineTransformMakeScale(0.8, 0.8) should do the trick.

like image 2
Clinton D'Souza Avatar answered Nov 20 '22 11:11

Clinton D'Souza