UIBezierPath с несколькими цветами?

Я работаю над проектом, в котором я использую UIBezierPath для рисования. Моя проблема в том, что когда я меняю цвет пути, меняется весь цвет UIBezierPath. Я хочу спросить, можно ли изменить цвет UIBezierPath с несколькими линиями.

С уважением


person Anam Akram    schedule 26.03.2013    source источник
comment
так что вы хотите, чтобы каждая строка в пути имела свой цвет?   -  person Pfitz    schedule 26.03.2013
comment
Я хочу что-то вроде того, что я выбираю пользовательский интерфейс цветовой формы, а остальная часть будущего рисунка изменяется на соответствующий цвет, пока я не изменю другой цвет, а предыдущий рисунок останется в том же цвете, что и был нарисован.   -  person Anam Akram    schedule 26.03.2013


Ответы (1)


Для одного пути UIBezier вы не можете AFAIK

Вы можете сделать что-то вроде этого

///// Добавляем это в drawRect

for (NSMutableDictionary *dic in pathArray) {
    UIBezierPath *_path = [dic valueForKey:@"path"];
    [[dic valueForKey:@"fColor"] setFill]; 
    [[dic valueForKey:@"sColor"] setStroke];
    [_path stroke]; 
  }

Заполнение массива в сенсорных событиях

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    self.currentPath=[[UIBezierPath alloc]init];
    self.currentPath.lineWidth=5;
    self.currentPath.miterLimit=-10;
    self.currentPath.lineCapStyle = kCGLineCapRound;
    self.currentPath.flatness = 0.0;


    UITouch *mytouch=[[touches allObjects] objectAtIndex:0];
    [self.currentPath moveToPoint:[mytouch locationInView:self]];
    NSMutableDictionary *dic = [[NSMutableDictionary alloc] init];
    [dic setObject:currentfColor forKey:@"fColor"];
    [dic setObject:currentsColor forKey:@"sColor"];
    [dic setObject:self.currentPath forKey:@"path"];
    [pathArray addObject:dic];

}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    UITouch *touch = [touches anyObject];
    [self.currentPath addLineToPoint:[touch locationInView:self.view]];
    [self.view setNeedsDisplay];
}

PS: это всего лишь пример. Я не проверял этот код, но он должен работать, возможно, потребуется некоторое изменение.

person DivineDesert    schedule 26.03.2013
comment
он снова устанавливает весь путь к текущему выбранному цвету, - person Anam Akram; 26.03.2013
comment
Вам нужно будет установить цвет в словаре в прикосновениях, как показано, пожалуйста, найдите код в редактировании. - person DivineDesert; 26.03.2013
comment
Можете ли вы привести мне рабочий пример, фрагмент кода не работает должным образом, спасибо - person Anam Akram; 26.03.2013
comment
@DivineDesert Большое спасибо - person Mohit Tomar; 30.09.2013