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

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
filyakov
0 / 0 / 0
Регистрация: 23.11.2013
Сообщений: 5
#1

Перерисовка кастомного View - Программирование iOS

15.02.2015, 23:27. Просмотров 606. Ответов 3
Метки нет (Все метки)

Доброго времени суток!
У меня есть класс, унаследованных от UIView, отрисовка объекта этого класса прописана в методе drawRect:. Мне необходимо по нажатию кнопки во ViewController'е циклически перерисовывать view с задержкой в конце каждой итерации. Для этого я вызываю в цикле метод setNeedsDisplay. Но, как показывает отладка, этот метод вызывается не на каждой итерации цикла, а только один раз в конце цикла. Как я понял после поисков в интернете, так сделано с целью повышения производительности. Но в моем случае надо отрисовывать view именно на каждом шаге цикла. Может быть, у кого нибудь есть идеи, как решить эту проблему?
Прикладываю код, в котором пытаюсь циклически перерисовывать view:
Objective-C
1
2
3
4
5
6
7
8
- (IBAction)linearAnimation:(id)sender {
    self.linearPolygon.isTransformed = YES;
    for (CGFloat a = -0.4; a < 0.4; a=a+0.1) {
        self.linearPolygon.alpha = a;
        [self.linearPolygon setNeedsDisplay];
        sleep(1);
    }
}
Заранее спасибо.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2015, 23:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перерисовка кастомного View (Программирование iOS):

По нажатию кнопки на View Controllere открыть Table View Controller - Программирование iOS
Как по нажатию кнопки на View Controllere открыть Table View Controller

Вместо navigation bar с table view хочу сделать просто view controller - Программирование iOS
добрый вечер. В xcode есть стандартный темплейт с navigation controller, но там по дефолту table view controller (master controller)...

анимация View - Программирование iOS
Здравствуйте! Использую этот метод для анимации(передвижения) view ; У этого view установлена тень ...

Трансформация view - Программирование iOS
всем привет) почему при применение трасформации что то в духе view.layer.transform = CATransform3DMakeRotation(angle, 0.0, 1.0,...

Выбор View - Swift
Доброго времени суток. Есть несколько view controller-ов, и есть конструкция switch-case в коде, которая должна определять какая и view...

rotate view - Программирование iOS
Привет всем. У меня есть вьюконтроллер, это просто попап окно, которое расположено сверху всеъ элементов. добавляю я его мне...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Melzas
38 / 38 / 4
Регистрация: 20.07.2011
Сообщений: 88
16.02.2015, 15:46 #2
Попробуй перерисовывать асинхронно в главном потоке или по тику NSTimer.
0
glvrzzz
95 / 71 / 12
Регистрация: 12.12.2012
Сообщений: 214
16.02.2015, 16:57 #3
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от filyakov Посмотреть сообщение
Но в моем случае надо отрисовывать view именно на каждом шаге цикла. Может быть, у кого нибудь есть идеи, как решить эту проблему?
Вы сами проблем насоздавали, теперь героически решаете. Ваш linearAnimation выполняется в главном потоке, и благодаря наличию замечательного вызова sleep благополучно его подвешивает. drawRect выполняется в runloop главного же потока, поэтому он выполняется не "в конце цикла", а когда ваш метод отдает управление.
Используйте NSTimer и забудьте навсегда про sleep (по крайней мере в главном потоке)
0
zulkis
682 / 609 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
16.02.2015, 22:12 #4
filyakov, я бы добавил - вообще sleep функцию забудьте. Ее не нужно использовать при разработке под iOS. Все решается другими путями.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2015, 22:12
Привет! Вот еще темы с ответами:

Сортировка view по цветам - Программирование iOS
У меня есть 15 view, которые окрашиваются рандомным цветом, и мне нужно их отсортировать по цвету. Я нажимаю кнопку сортировки по красному...

Table View Cell - Программирование iOS
Есть Table View Cell. Как сделать переход по нажатью push на View Controller&amp; Добавлено через 30 минут Точнее по нажатию на Table...

Single View Application - Программирование iOS
Доброе время суток уважаемые форумчане. Хотел у вас спросить, когда создаешь приложение из шаблона Single View Application в файле...

View Controller Scene - Программирование iOS
Еще раз всем Доброго времени суток.Вопрос у меня есть один View Controller Scene (на нем кнопка) я кидаю второй View Controller Scene как...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.02.2015, 22:12
Ответ Создать тему
Опции темы

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