Уменьшите размер точки или отступы, чтобы соответствовать всем индикаторам страницы на экране с помощью UIPageControl

У меня есть UIPageControl, который имеет 22 страницы, поэтому 22 страницы индикатора. В ландшафте на iPhone все они видны с большим пространством слева и справа, но в портрете недостаточно горизонтального пространства для отображения всех точек (по крайней мере, на iPhone 4 и 5), поэтому два не видны и внешние два разрезаются пополам.

Я ищу способ уменьшить размер точек или уменьшить количество прокладок между точками, чтобы гарантировать, что все точки подходят на экране в портрете. Как это можно сделать?

enter image description here

Ответы

Ответ 1

Если у вас есть много точек, я бы серьезно подумал о другом контроле. Но если вы хотите придерживаться UIPageControl, я бы просто масштабировал его, чтобы соответствовать на экране, с чем-то вроде:

pageControl.transform = CGAffineTransformMakeScale(0.7, 0.7);

Это уменьшает его до 70% от его первоначального размера - я оставляю его для определения наилучшего масштаба для вашего размера экрана/количества страниц.

Ответ 2

Код версии Swift 3: на основе ответа pbasdf.

pageControl.transform = CGAffineTransform(scaleX: 0.7, y: 0.7)

Ответ 3

Вы действительно не должны использовать UIPageControl для чего-то, что имеет 22 страницы. Как пробовать что-то вроде метки, которая возвращает число вместо. Будет делать вам приложение выглядеть намного чище.

Хотя, если вы действительно хотите использовать pageControl, ответ pbasdf будет включен. pageControl.transform = CGAffineTransformMakeScale (0,8, 0,8) должен сделать трюк.