iphone: механический рисунок и слои

Мне нужно сделать немного механического рисования. Я могу (1) отобразить изображение детали,

[self.view addSubview:thePartAsImageView];

(2) реализовать два ползунка (один горизонтальный для ширины детали и один вертикальный для высоты детали),

heightSlider.transform = CGAffineTransformRotate(heightSlider.transform, 270.0/180*M_PI);

(3) отображать соответствующие значения (размеры) по мере того, как пользователь перемещает ползунки, и даже (4) рисовать линии размеров со стрелками:

CGContextAddLineToPoint

Чего я не могу сделать, так это (5) удалить эти линии после того, как я их нарисовал.

Я хочу, чтобы «если userTouchedTheHorizontalControl затем стирал TheLinesForTheVerticalControl».

Если я правильно понимаю — во-первых, Quartz компилирует все в один слой, а во-вторых, что CALayer, GeekGameBoard и так далее работают только на Mac — тогда мне нужно сделать что-то другое. Но есть ли что-то, что я могу сделать, кроме как переключиться на Open GL?


person d_CFO    schedule 17.05.2010    source источник
comment
Если у вас уже есть метод рисования, не могли бы вы просто использовать CGContextClearRect, чтобы стереть существующие линии и нарисовать все с нуля с помощью кода, который вы описали?   -  person warrenm    schedule 18.05.2010


Ответы (1)


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

Как насчет того, чтобы нарисовать размерные линии в новом UIView поверх всего остального с фоном [UIColor clearColor] и opaque=NO, а затем просто удалить это представление, когда линии больше не нужны?

person Adam Eberbach    schedule 17.05.2010
comment
Адам, спасибо. Это предложение именно то, что я искал: элегантное и простое. Я не могу сразу добраться до него, но я опубликую после того, как что-нибудь наколдую. - person d_CFO; 18.05.2010