私はUIBezeirPathを使用しています.drawRectメソッドでは、以下の方法でパス(行)のsetStrokeにハードコーディングされた色を取得しました.
- (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];
}
}
}
私がこれを正しい方法で行っているのか、それとも何かが欠けているのか. 私を助けてください
よろしくランジット