Низкая производительность при загрузке прокрутки - PullRequest
2 голосов
/ 26 октября 2010

У меня есть контроллер вида, вид которого состоит из постраничного вида прокрутки, которым управляют 2 кнопки (предыдущая и следующая).В этом представлении прокрутки есть несколько пользовательских представлений, каждое размером одной страницы.

Когда я загружаю основной вид, вид прокрутки настраивается на все эти подпредставления.Производительность моего приложения в настоящее время в этой области неприемлема, поскольку для загрузки представления требуется около 3 секунд.Я заметил, что если я закомментирую свой метод drawrect в моем пользовательском представлении, производительность значительно улучшится.Может кто-нибудь, пожалуйста, взгляните на этот код и посмотрите, что я делаю, что так жадно до ресурсов?Я действительно новичок в основной графике и подозреваю, что я делаю что-то явно не так.Если бы кто-то мог взглянуть на это здесь , я был бы очень признателен

Ответы [ 2 ]

4 голосов
/ 26 октября 2010

Две вещи выскакивают у меня.

1.) Создайте свои UILabels в другом месте - возможно, в -viewDidLoad.И сделайте необходимую настройку UILabels в -viewDidLoad.Обновление объектов требует времени.Таким образом, сделайте вопрос XxxLabel объектами ivars.

2.) Аналогичным образом создайте эти CGColorRefs где-нибудь еще.Они могут быть статическими классами vars или ivars - но они должны быть определены один раз и только один раз.

Например, вы можете создать файл colors.h, который может быть включен, где могут использоваться эти цвета.

 /*
 * colors.h
 */

//  use _COLORS_ to insure that colors.h is not included multiple times
//  i.e., ANSI standard way of constructing an inclusion guard.

#ifndef _COLORS_
#define _COLORS_

CGColorRef whiteColor = [UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0].CGColor; 
CGColorRef lightGrayColor = [UIColor colorWithRed:230.0/255.0 green:230.0/255.0 blue:230.0/255.0 alpha:1.0].CGColor;
CGColorRef shadowColor = [UIColor colorWithRed:0.2 green:0.2 blue:0.2 alpha:0.5].CGColor;
CGColorRef lightGreenColor = [[UIColor colorWithRed:158.0/255.0 green:192.0/255.0 blue:72.0/255.0 alpha:1.0] CGColor];
CGColorRef darkGreenColor = [[UIColor colorWithRed:102.0/255.0 green:142.0/255.0 blue:66.0/255.0 alpha:1.0] CGColor];
CGColorRef shadowGreenColor = [[UIColor colorWithRed:71.0/255.0 green:100.0/255.0 blue:66.0/255.0 alpha:1.0] CGColor];

#endif // _COLORS_
2 голосов
/ 31 октября 2010

Вы пытались запустить свое приложение с помощью инструментов? Может быть, это может помочь вам.

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