Форум программистов, компьютерный форум CyberForum.ru

Торможение UI при хитрой иерархии классов - Программирование iOS

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование iOS KissXML http://www.cyberforum.ru/ios-dev/thread1131171.html
Привет всем, может кто подскажет как с помощью блоков можно заменить делегирование, как я понял нужно его использовать во viewDidLoad. // // ViewController.m // RSSReader //
Программирование iOS Передача данных из UIPickerView во время прокрутки Доброго времени суток. У меня есть 2 UITableViewCell, первый пустой, во втором как subview лежит UIPickerView. Есть ли возможность во время прокрутки UIPickerView передавать данные в первую ячейку? Метод didSelectRow:atIndexPath: не подходит, т.к. он передает данные только после остановки прокрутки, а titleForRow:forComponent: передает индекс к которому может быть прокручен, но не тот, который... http://www.cyberforum.ru/ios-dev/thread1131114.html
Find my iphone Программирование iOS
всем привет,купил себе ipad с рук а оказался он варованный,а найти продавца не могу исчез и по мойму подключен службе аштв my iphone.есть ли какой нибудь обход???? скольуо раз себе говорил что не буду с этим связываться зная эту систему но все равно купил)) помогите пожалуйста еси можно ,знаю что тут не обсуждаются темы взлома,но он же уже мой))))
Анимация в 2d игре Программирование iOS
Здравствуйте уважаемые форумчане. Сразу хочу сказать, что я не коддер. Я разрабатываю интерфейс для 2D игры, и столкнулся с вопросом. В игре, у некоторых персонажей будет анимация движения/действий (например как здесь https://www.youtube.com/watch?v=smbwzzWgi-w). Поэтому вопрос, анимацию должен делать дизайнер в специальной программе, или анимацию должен делать коддер? Спасибо за ответ.
Программирование iOS Description RSS Reader http://www.cyberforum.ru/ios-dev/thread1129268.html
Есть метод: NSString *parseDescriptionForShortDesc(NSString *desc) { NSMutableArray *results = ; ; return ; }
Программирование iOS Сдвиг вниз ячеек/секций в UITableView Доброго времени суток. Мне необходимо реализовать такую задачу: есть таблица, по тапу на одну ячейку все остальные ячейки, которые ниже, смещаются вниз, а на освобожденном месте появляется UIPickerView. Может ли кто-нибудь подсказать механизм, как это реализовать? подробнее

Показать сообщение отдельно
kievkao
42 / 42 / 2
Регистрация: 22.11.2012
Сообщений: 225

Торможение UI при хитрой иерархии классов - Программирование iOS

27.03.2014, 22:40. Просмотров 533. Ответов 5
Метки (Все метки)

Всем привет!

Извините за много букв, заранее спасибо всем, кто прочитал!

Подскажите, пожалуйста, что может быть причиной такого поведения.
Есть контроллер, на нем, в частности, 20 кнопок:
Первые 10 кнопок: background - изображение, title - буква (вроде маленького алфавита)
Вторые 10 кнопок: background - изображение, title - пустой (ячейки, куда будут выводиться буквы)

Чтобы не мешать все в кучу в одном контроллере, я решил сделать так:
1. Создал класс "CharsManager", который полностью отвечает за работу с "алфавитом". При создании объекта этого класса я инициализирую его массивом кнопок с буквами:

Objective-C
1
2
NSArray *baseCharsButtons = @[self.char_1, self.char_2, self.char_3, self.char_4, self.char_5, self.char_6, self.char_7, self.char_8, self.char_9, self.char_10];
charsManager = [[BaseCharsManager alloc] initWithCharsButtons:baseCharsButtons andDelegate:wordManager];
И каждой кнопке присваиваю внутри класса CharsManager обработчик нажатия.

2. Создал класс "WordManager", который полностью отвечает за отображение вводимого слова. Его при создании аналогично проинициализировал массивом кнопок-ячеек, куда выводятся вводимые буквы. И, как можно увидеть, сделал его делегатом своего "класса клавиатуры".

То есть, получается, мой главный контроллер не вмешивается во взаимодействие этих двух сущностей - они сами разбираются, когда там что надо вывести.

3. Создал кнопку "Очистить все", где выполняю следующие действия:
Objective-C
1
[wordManager clearAll];
Где метод <clearAll> являет собой следующее:
Objective-C
1
2
3
4
5
6
7
8
9
10
- (void)clearAll
{
    for (int i = 0; i < [self.charsBut count]; i++) {
        UIButton *but = [self.charsBut objectAtIndex:i];
        [but setTitle:@"" forState:UIControlStateNormal];
    }
    
    [word setString:@""];    // в word хранится текущее введенное слово
    currentIndex = 0;         // индекс текущей введенной буквы
}
//--------------------------------------------------
Для чего я собственно, это все пишу.
После первого же нажатия "Очистить все" начинаются тормоза UI: девайс (iPad 4) с задержкой реагирует на нажатия кнопок алфавита, и выводит буквы в свои ячейки с видимой паузой.
И такое начинает происходить после первого "Очистить все".

Я пересмотрел работу всеми профайлерами - все ОК, память бесконтрольно не растет, утечек нет, ничего на графиках профайлера не меняется после нажатия "Очистить все", но факт остается фактом.

Может быть мой подход в корне неправильный? И та структура, которую я соорудил, является чем-то ужасным, что может негативно влиять на работу?

Буду очень рад каким-то комментариям!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru