Я на самом деле просто отправил ответ на очень похожий вопрос, где кто-то пытался добиться этого с использованием UICollectionView
. Ссылка на мой ответ здесь: https://stackoverflow.com/a/36710965/3723434
Соответствующий фрагмент кода я буду размещать здесь:
Так что другой подход будет установить CGAffineTransformMakeScale (,) в UIScrollViewDidScroll где вы динамически обновлять размер этих страниц основанные на их расстоянии от центра экрана.
Для каждой страницы, вычислить расстояние от его центра до центра yourScrollView
Центр yourScrollView может быть найден с помощью этого метода отличного: CGPoint точки = [self.view convertPoint: yourScrollView .center toView: * yourScrollView];
Теперь настройте правило, что если центр страницы больше, чем x, размер страницы, например, «нормальный размер», назовите его 1. и чем ближе он дойдет до центра, тем ближе он получает в два раза больше нормального размера, 2.
, то вы можете использовать следующие, если/еще идея:
if (distance > x) {
page.transform = CGAffineTransformMakeScale(1.0f, 1.0f);
} else if (distance <= x) {
float scale = MIN(distance/x) * 2.0f;
page.transform = CGAffineTransformMakeScale(scale, scale);
}
что происходит, что размер страницы будет точно следовать ваши прикосновения.Дайте мне знать, если у вас есть еще вопросы, поскольку я пишу большую часть этого из головы).
Опубликованный ответ ниже, который должен делать то, что вы хотите, - сообщите мне, если у вас возникнут проблемы! – trdavidson
@shadowman, я опубликовал немного другой ответ, который должен дать вам гибкость и контроль, в которых вы нуждаетесь. – barndog