Форум программистов, компьютерный форум, киберфорум
Objective-C
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60

Скроллинг текста с анимацией

16.01.2013, 14:43. Показов 1850. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как реализовать такой скроллер, чтобы один из лейбл дойдя до верхней части экрана оставался вверху, а текст из другого лейбла скроллился дальше за пределы экрана, например как в инстаграмм, только вместо фотографий текст из второго лейбла
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.01.2013, 14:43
Ответы с готовыми решениями:

Скроллинг текста в редакторе VB только у меня не работает или у всех?
Тут подумал - а почему я не могу перемещать тест модуля в VB вращая колесико мыши? Ведь даже блокнот поддерживает эту удобную функцию. Или...

Кнопка с анимацией (Button с анимацией)
Всем доброго времени суток! Давно интересно было как сделать такую вот кнопку. Кто знает как - расскажите пожалуйста. И еще как делать...

Вывод текста в окно, перенос на следующую строку, скроллинг окна на одну строку
Есть код include 'emu8086.inc' data segment HEIGHT dw 1 WIDTH dw 1 WIN_HEIGHT db 1 ...

13
Peace 2 all shining faces
 Аватар для Vorona
674 / 535 / 85
Регистрация: 05.03.2010
Сообщений: 1,282
16.01.2013, 23:02
Вариант 1:
можно сделать два скролвью: один нормально скролится и лежит поверх второго, а второй следит за оффсетом первого и если офсет первого (или второго) больше или меньше необходимых границ, то оставляем прежний оффсет второго скроллера
таким образом мы имеем дело с первым(верхним) скроллером, а нижний (со второй лейбой), просто подстраивается под него

Вариант 2:
обойтись одним скроллером и следить за его оффсетом, а при скроллинге просто оставлять лейбу сверху или снизу (изменять ее фрейм), если оффсет достиг нижней или верхней границы

(второй наверное лаконичней)
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
17.01.2013, 14:42
Развитие варианта 2 от Vorona:
Реализуем наследник UIScrollView и перегружаем ему layoutSubviews примерно так:
Objective-C
1
2
3
4
[super layoutSubviews];
CGRect headerFrame = self.headerLabel.frame;
headerFrame.origin.y = self.contentOffset.y;
self.headerLabel.frame = headerFrame;
headerLabel - это тот лейбл, который должен наверху висеть.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
21.01.2013, 14:51  [ТС]
Да вообщем-то так и сделал, как второй вариант, только слегка по-своему

C
1
2
3
4
5
6
7
8
9
10
11
12
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    
    [UIView beginAnimations:nil context:nil];
        [UIView setAnimationDuration:0.5];
 
        self.title.frame=CGRectMake(39, 10, 96, 23);
    self.more.frame=CGRectMake(187, 5, 44, 44);
 
    [UIView commitAnimations];
 
}
more-кнопка, которая так же должна была двинуться с места

А теперь вопрос, как учесть скорость скроллинга, чтобы при слишком быстром текст не наезжал на лейбл
И еще один вопрос, какой метод отвечает за слежку за тем, что текст полностью прокручен обратно, дабы вернуть лейбл, который двигался, на обратное место
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
21.01.2013, 16:25
только слегка по-своему
А вот не нужно велосипед придумывать, Вам написали - переопределяйте layoutSubviews. А Вы выдумываете чтото...
Разочарую, но скорость Вам будет сложно учесть.
mobidevelop все верно написал, так что берите идею и пользуйтесь.
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
21.01.2013, 16:40
Ну, если совсем не хочется наследоваться от UIScrollView, а обойтись делегатом, то тогда код установки фреймов можно перенести в метод scrollViewDidScroll:. Но так же без анимации и прочих излишеств. Все само получится.

Кстати, beginAnimations нынче не в моде. Советую почитать про animateWithDuration:animations: и иже с ними. Код получится несколько нагляднее и компактнее. А при известной сноровке еще и более расширяемым.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
21.01.2013, 17:33  [ТС]
Окей, спасибо за советы про анимацию и переопределение. Наследник скролл вью, всмысле надо класс создать новый и там переопределить его, а потом использовать как протокол?

Насчет скролла обратно нету никаких мыслей? но то бишь когда скроллер возвращается в обратное положение(прокручивается полностью вверх), какой метод следит за этим?
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
21.01.2013, 18:01
Цитата Сообщение от paparotnik Посмотреть сообщение
Наследник скролл вью, всмысле надо класс создать новый и там переопределить его, а потом использовать как протокол?
Изучайте ООП и базовые принципы.
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
21.01.2013, 18:03  [ТС]
Я представлю что такое наследник, я имею ввиду как именно переопределить, создавать новый класс или просто метод определить в контроллере
0
 Аватар для zulkis
686 / 613 / 43
Регистрация: 13.01.2011
Сообщений: 1,722
21.01.2013, 18:10
Цитата Сообщение от paparotnik Посмотреть сообщение
я имею ввиду как именно переопределить, создавать новый класс или просто метод определить в контроллере
Вот такого вопроса не было бы, если бы Вы представляли что такое наследник и перегрузка метода.
Вот честное пионерское.
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
21.01.2013, 18:16
Цитата Сообщение от paparotnik Посмотреть сообщение
Насчет скролла обратно нету никаких мыслей? но то бишь когда скроллер возвращается в обратное положение(прокручивается полностью вверх), какой метод следит за этим?
Уважаемый, а Вы пробовали мой совет в деле? Документацию по этому методу читали? Может быть, стОит попробовать/почитать? Глядишь и вопросов бы таких странных не возникло...
0
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
23.01.2013, 13:14  [ТС]
Цитата Сообщение от mobidevelop Посмотреть сообщение
Уважаемый, а Вы пробовали мой совет в деле? Документацию по этому методу читали? Может быть, стОит попробовать/почитать? Глядишь и вопросов бы таких странных не возникло...
Насколько я понял, ваш предложенный метод отслеживает ситуацию когда изменяются офсеты, каким образом он поможет в том, чтобы отследить ситуацию когда скролл вернулся на начальное положение??
Извиняюсь за возможную странность вопросов, но я еще новичок и только учусь, и мне интересно мнение опытных людей, документация не всегда расставляет все по полочкам так, как общение с шарящими людьми
0
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
23.01.2013, 13:39
А начальное положение - это не когда (scrollView.contentOffset.x == 0.0 && scrollView.contentOffset.y == 0.0) ?
Соответственно, это условие в указанном методе делегата всех спасет. Ну или если "начальное положение" - это что-то другое, то и цифири другие будут.
Фишка в том, что scrollViewDidScroll: вызывается сразу после того, как изменился contentOffset (в том числе и на "начальное положение"). В принципе, этой фразы должно быть достаточно. Дальше нужно включить либо мозг для "подумать", либо руки для "попробовать".
PS. Сам в таких случаях обычно предпочитаю последовательность:
1. руки (попробовать)
2. глаза (посмотреть что получилось)
3. мозг (подумать как адаптировать под свои нужды)
Задействуйте же хоть что-нибудь. Иначе так и останетесь "новичком" и ничему не научитесь. А "шарящим людям" интересно отвечать на интересные вопросы и помогать заинтересованным людям, а не раскладывать все по полочкам и уговаривать попробовать предложенные решения.
Так что смелее в бой. Потом расскажете - получилось или нет
1
0 / 0 / 0
Регистрация: 27.11.2012
Сообщений: 60
23.01.2013, 16:13  [ТС]
Да, все получилось! Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.01.2013, 16:13
Помогаю со студенческими работами здесь

Неполадки с анимацией
Доброго времени суток! Добавляю на сайт простые jquery анимации. Хочу сделать так, чтобы они срабатывали сразу после загрузки страницы....

Программа с анимацией
Помогите написать программу Практическая работа №5. Построение изображения с помощью методов исвойств Canvas. 1. Создайте новый...

Дилемма с анимацией
Всем здравствуйте. У меня такая ситуация: скидывают мне ПСДшные заготовки и хмл файл с описанием анимации для такой заготовки....

Платформер с анимацией
Всем привет!!! Делаю платформер на андроид, но у меня сложности с бегом персонажа. Если кому не сложно помогите мне! мне нужно сделать так,...

Рисование с анимацией
Здравствуйте! Подскажите как можно нарисовать например автомобиль и анимировать его движения, желательно с хорошим примером


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru