Я работаю с UIBezeirPath, и в моем методе DrawRect, я принял жёстко прописанный цвет, чтобы setStroke для моего пути (линия) в приведенном ниже способекак установить различные цвета для UIBezeirPath путем выбора вариантов цвета
- (void)drawRect:(CGRect)rect
{
[[UIColor redColor] setFill];
for (UIBezierPath *_path in pathArray)
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
}
это прекрасно работает и устанавливает красный цвет для пути (линии). Я рисую. Теперь, когда я выбираю другой цвет из цветовых опций, предположим, что я выбираю синий цвет, теперь, когда я начинаю рисовать путь, цвет синий, , но предыдущая рисованная красная линия также меняется на синюю. И вот вся проблема
ниже мой код, как я устанавливаю различные цвета
- (void)drawRect:(CGRect)rect
{
if(changecolor)
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
strokeColor = appDelegate.color;
NSLog(@"%@",strokeColor);
SEL blackSel = NSSelectorFromString(strokeColor);
UIColor* tColor = nil;
if ([UIColor respondsToSelector: blackSel])
tColor = [UIColor performSelector:blackSel];
[tColor setStroke];
[tColor setFill];
}
else
{
[[UIColor redColor] setStroke];
[[UIColor redColor] setFill];
for (UIBezierPath *_path in pathArray)
{
[_path strokeWithBlendMode:kCGBlendModeNormal alpha:1.0];
}
}
}
ли я делать это правильно, или я что-то отсутствует. пожалуйста, помогите мне
С уважением Ранджит
Привет, друзья, пожалуйста, помогите мне – Ranjit
Вы должны использовать NSDictionary. Используйте цвет и путь как ключ и объект соответственно и добавьте это в свой массив. Итерируйте этот массив в drawrect, итерации по всем клавишам. Вы получите все ключи и соответствующие им объекты. –
@Prernachavan, спасибо – Ranjit