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

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

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

Ресайз большого графического объекта - Программирование iOS

28.05.2013, 07:42. Просмотров 422. Ответов 2
Метки нет (Все метки)

Здравствуйте, столкнулся с такой проблемой, есть задача - отобразить план этажа, с кучей помещений, и каждое помещение должно быть тыкабельно, изначально решил использовать кривые Безье, соответственно каждое помещение в коде выглядит так:
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
UIBezierPath *path;
// —----------------------------
path = [[UIBezierPath alloc] init];
path.lineWidth = lineWidth;
// Color
[pathColor setObject: [UIColor colorWithRed:0.1686275 green:0.1647059 blue:0.1607843 alpha:1] forKey: [NSNumber numberWithInt:path.hash]];
// Color
[pathData setObject: [NSNumber numberWithInt:0] forKey: [NSNumber numberWithInt:path.hash]];
// Move
[path moveToPoint:CGPointMake(292.3275,287.8195)];
// Line
[path addLineToPoint:CGPointMake(292.3275,288.115)];
// Line
[path addLineToPoint:CGPointMake(291.0615,288.1695)];
// Line
[path addLineToPoint:CGPointMake(292.3275,288.4105)];
// Line
[path addLineToPoint:CGPointMake(292.3275,288.692)];
// Line
[path addLineToPoint:CGPointMake(290.8125,288.3755)];
// Line
[path addLineToPoint:CGPointMake(290.8125,287.931)];
// Line
[path addLineToPoint:CGPointMake(291.874,287.8845)];
// Line
[path addLineToPoint:CGPointMake(290.8125,287.368)];
// Line
[path addLineToPoint:CGPointMake(290.8125,286.918)];
// Line
[path addLineToPoint:CGPointMake(292.3275,287.2355)];
// Line
[path addLineToPoint:CGPointMake(292.3275,287.52)];
// Line
[path addLineToPoint:CGPointMake(291.071,287.221)];
[path closePath];
[pathArray addObject:path];
Отрисовывается план нормально, но ресайз страшно тормозит, очевидно из-за того, что перерисовывается весь набор помещений за раз. Подскажите, пожалуйста, как быть в такой ситуации.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2013, 07:42     Ресайз большого графического объекта
Посмотрите здесь:

Отображение большого количества данных - Программирование iOS
Здравствуйте. Подскажите как реализовать показ данных из json? Нужно вывести разные данные, картинка, большой текст и короткую информацию....

Вращение объекта - Программирование iOS
Здравствуйте. Есть объет(палка), который должен вращаться относительно своего центра с помощью акселерометра, т.е. палка должна всегда...

Создание объекта - Objective-C
Всем доброго вечера, подскажите: NSTimeZone *timeZone = init]; timeZone = ; Это одно и тоже? Либо я всё правильно сделал: ...

Создание объекта в цикле - Objective-C
Здравствуйте. Я пишу небольшую карточную программу и у меня возникли небольшие трудности по поводу создания объекта в цикле. Я почти...

Вызов объекта в keyDown - Objective-C
являясь новичком в обжекте встал в ступор в ситуации, когда у меня есть класс, в нем инициализируется объект и в нем же оверрайдится...

Перемещение объекта пальцем - Программирование iOS
Подскажите как при помощи среды разработки xcode с использованием cocos2d реализовать перемещение спрайта по экрану при помощи тачскрина по...

движение графического объекта - Pascal
Задача: Движение кубика по контуру экрана с изменением цвета при изменении направления движения. (с помощью процедур и функций) ...

движение графического объекта - C++ Builder
привет всем.собственно,проблема : при нажатии мышкой в любом месте формы некий графический объект(далее как г\о),будь то Image, Rect или...

Движение графического объекта - PascalABC.NET
Как организовать движение круга по оси х. Понимаю, что надо нарисовать круг черной кистью и затереть его белой. Program Concentric2; ...

Вывод графического объекта на С++ - C++
Нужно, переделать так, чтобы программа вместо символов (>,<) выводила графический объект (*.bmp). Помогите переделать. #include <conio.h>...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mobidevelop
182 / 182 / 3
Регистрация: 10.01.2013
Сообщений: 596
28.05.2013, 11:46     Ресайз большого графического объекта #2
Долго и нудно оптимайзить. Перво наперво - нарисовать все один раз (для текущего масштаба) и разрезать на UIImage's. Скажем, каждое помещение в отдельной картинке. А потом из них собирать общий план. UIImage отрисовывается намного быстрее, чем кривые.

Добавлено через 1 минуту
И помещения тыкабельными сделать так гораздо проще будет.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
29.05.2013, 09:20     Ресайз большого графического объекта #3
Ваш выбор - пример на сайте apple

Добавлено через 1 минуту
Они его обновили. У меня еще был под 4.0+
Yandex
Объявления
29.05.2013, 09:20     Ресайз большого графического объекта
Ответ Создать тему
Опции темы

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