Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Перелистывание текста на экранах. 
V
    Опции темы
dEEp
  Дата 19.9.2013, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Здравствуйте. Простите, только начинаю изучать, поэтому с терминологией пока проблемы. Надеюсь поймёте.

Ситуация примерно такая... Есть View Controller на котором расположен текст. Вокруг всякая мишура (оформление). Хотелось бы, чтобы при проведению пальцем по экрану (слева направо), текущий текст улетал, а появлялся новый. Из массива или БД - не важно. 

Так как я начинающий, то посмотрел некоторые записи, посты и т.д. и сделал два View Controller'a, которые связал через Swipe и вроде как задача частично решилась. Частично, потому как там перелистывание не такое. Но два View Controller'a это не то. Гипотетически, массив строк может включать и 200 строк, поэтому делать для каждой строки свой View Controller кажется глупостью. Отсюда и вопрос. Как можно скролить строки (TextView) горизонтально? По сути человек должен увидеть примерно так: 
текст1 -> махнул пальцем справо-налево -> текст2 -> махнул пальцем справо-налево -> текст 3 -> махнул пальцем слева-направо -> текст2 (то есть вернулись на 1)


Поясните пожалуйста или ссылки какие-то киньте. 

Благодарю.
PM MAIL   Вверх
Bitter
Дата 19.9.2013, 21:37 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



Конечно вью контроллерами это не делается. Это можно сделать обычной анимацией типа такого
Код

            myLabel2.center = CGPointMake(480, myLabel2.center.y); // Кладем второй текст за экраном (iPhone, портретный режим)
            [UIView animateWithDuration:0.4 animations:^{
                myLabel1.center = CGPointMake(-160, myLabel1.center.y);  // Уезжает влево за экран
                myLabel2.center = CGPointMake(160, myLabel2.center.y);  // вылетает справа и останавливается в центре экрана
            } completion:^(BOOL finished) {
                UILabel temp = myLabel1;
                myLabel1 = myLabel2;
                myLabel2 = temp;
            }];


По окончании анимации (блок completion), меняем лейблы местами. Потом новый текст присваиваете myLabel2 и снова вызываете эту анимацию 
PM MAIL ICQ Skype   Вверх
dEEp
Дата 19.9.2013, 22:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Простите, но где-то нужно объявить myLabel1 и myLabel2? Должна же быть какая-то инициализация, верно? Я тут как бы познаю только Object-C, сам джавист с 8ти летним стажем. 

На форме кинул два лейбла и задал им имена из вашего примера. Код вкинул в viewDidLoad. 
PM MAIL   Вверх
Bitter
Дата 20.9.2013, 00:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



А что джависты с 8ми летним стажем не умеют объявлять переменные? Читайте книги, это самые азы.
Этот код делает анимацию, вызывайте его каждый раз когда нужно сделать листание. Метод viewDidLoad вызывается только один раз при загрузке контроллера. И где простите вы умудрились на форме задать лэблам эти имена?
PM MAIL ICQ Skype   Вверх
dEEp
Дата 20.9.2013, 01:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Не, могу конечно, просто не знаю в том ли месте это делать.

Как где? Не на самой форме конечно, а слева, где перечислено что лежит на форме. Там.
PM MAIL   Вверх
Bitter
Дата 20.9.2013, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



Цитата

Как где? Не на самой форме конечно, а слева, где перечислено что лежит на форме. Там.


Не, так делать не надо. Вы должны объявить @property с ключевым словом IBOutlet и после этого связать каждый проперти с лэйбами которые вы положили на форму.
Объявить проперти можете в описании класса
@property (nonatomic, strong) IBOutlet UILabel *myLabel1;
PM MAIL ICQ Skype   Вверх
dEEp
Дата 29.5.2014, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 58
Регистрация: 9.5.2007

Репутация: нет
Всего: нет



Благодарю.
PM MAIL   Вверх
aleshenkaaa
Дата 23.7.2014, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 23.7.2014

Репутация: нет
Всего: нет



У меня та же самая проблема,воспользовался советом,но все равно не помогло,что делать?
_________________________
ЖелдорАльянс

Это сообщение отредактировал(а) aleshenkaaa - 23.7.2014, 17:09
PM MAIL   Вверх
Bitter
Дата 23.7.2014, 18:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный лентяй
***


Профиль
Группа: Завсегдатай
Сообщений: 1209
Регистрация: 15.8.2004
Где: Харьков, Ukraine

Репутация: 10
Всего: 27



как минимум - описать проблему
PM MAIL ICQ Skype   Вверх
tata1122
Дата 7.4.2015, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 3
Регистрация: 7.4.2015

Репутация: нет
Всего: нет



Мне помогло) спасибо)
PM WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | iOS | Следующая тема »


 




[ Время генерации скрипта: 0.1992 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.