Как увеличить при прокрутке UIScrollView - PullRequest
0 голосов
/ 08 марта 2012

Я добавляю несколько меток в UIScrollView и хочу, чтобы при прокрутке размер шрифта средней метки становился больше.И предыдущий средний размер шрифта метки уменьшается до меньшего.И изменения происходят постепенно.Как ниже.Метка 1 переместится влево, уменьшится, а метка 2 переместится в середину, станет больше.Все метки в представлении UIScroll.

enter image description here

Я пробовал некоторые, например, когда прокручивал, я пробовал масштабировать страницу прокрутки, кажется сложнее, чем я думал ...

Любойесть хорошая идея?Спасибо!

Ответы [ 3 ]

4 голосов
/ 08 марта 2012

Довольно просто на самом деле.Просто приклейте UIScrollViewDelegate к просмотру прокрутки и сделайте что-то вроде этого ..

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{
    for (int i = 0; i < [scrollView.subviews count]; i++) {
        UIView *v = [scrollView.subviews objectAtIndex:i];
        float position = v.center.x - scrollView.contentOffset.x;
        float offset = 2.0 - (abs(scrollView.center.x - position) * 1.0) / scrollView.center.x;
        v.transform = CGAffineTransformIdentity;
        v.transform = CGAffineTransformScale(v.transform, offset, offset);
    }
}

Но, если вы не впечатлены аффинным преобразованием, вы все равно можете масштабировать прямоугольник, используя фактор offsetи установите UILabel на adjustsFontSizeToFitWidth ... и все готово!

Просто убедитесь, что места достаточно!В противном случае он может очень легко выйти из-под контроля.

Допущения:

  1. Нет никаких других представлений в представлении прокрутки, кроме этих меток.
  2. Требуется работать только горизонтально.
0 голосов
/ 08 марта 2012

Просто увеличьте размер шрифта (с блоком анимации), когда он средний, и уменьшите его, если это не так.

Вы можете добавить категорию в UILabel с помощью -(BOOL)isMiddle и установить для нее значение true / false.

0 голосов
/ 08 марта 2012

Это можно сделать с помощью CoreAnimation.Вы должны сохранить индекс основной метки (той, которая находится в центре), и после того, как прокрутка завершена или когда начинается прокрутка (используйте какой-то подходящий для вас метод в UIScrollViewDelegate), и просто уменьшайте боковые метки посредством анимации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...