Я сделал пример демонстрации для создания случайного пути с использованием объекта UIBezier
. Я знаю, что задал тот же вопрос, который уже задавали, но я не смог так решить.
Код
@implementation RandomShape
@synthesize randomPath,size,color;
- (void)drawRect:(CGRect)rect {
self.size = 1.0;
[self.color setStroke];
[self.randomPath stroke];
}
-(id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if(self)
{
self.randomPath = [UIBezierPath bezierPath];
[self.randomPath stroke];
}
return self;
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *touch = [touches anyObject];
[self.randomPath moveToPoint:[touch locationInView:self]];
[self.randomPath setLineWidth:size];
[self setNeedsDisplay];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
UITouch *mytouch=[touches anyObject];
[self.randomPath addLineToPoint:[mytouch locationInView:self]];
[self setNeedsDisplay];
}
-(void)clearRandomShape
{
self.randomPath = nil; //Set current path nil
self.randomPath = [UIBezierPath bezierPath]; //Create new path
[self.randomPath setLineWidth:2.0];
[self setNeedsDisplay];
}
1) Я выбрал цвет в представлении выбора.
Теперь моя проблема в том,
--> Когда я выбираю цвет из палитры, он меняет весь предыдущий цвет строки как есть.
(Он отображает последний цвет, который я выбираю на всех случайных путях.)
---> Мое требование состоит в том, чтобы я выбрал случайный путь другого цвета.
Пожалуйста, помогите мне, я запутался.
Спасибо.
touchesBegan
вместо добавления дополнительных строк к существующему создавайте новый путь с новыми свойствами для этого пути. Вместо одногоUIBezierPath
поддерживайте иArray
его. Кстати, я не даю официального ответа, потому что я кодирую в swift3, и это может привести к синтаксической ошибке, если я попытаюсь ответить в objC, извиняюсь. - person Ben Ong   schedule 13.01.2017