CAShapeLayer strokeColor从图像模式UIColor到CGColor颠倒

时间:2015-05-31 21:44:37

标签: ios objective-c core-graphics calayer cashapelayer

我正在使用CABasicAnimation使用UIBezierPaths

在数组中绘制所有CAShapeLayer
CAShapeLayer *shapeLayer = [CAShapeLayer layer];    
shapeLayer.path = [path CGPath];
shapeLayer.strokeColor = path.color.CGColor;

我的path.color是来自图片模式的UIColor。转换为CGColor后,image pattern会被颠倒。我知道这是因为iOS和核心图形使用不同的绘图起点。

我试过了

shapeLayer.transform = CATransform3DMakeRotation(M_PI, 0.0, 0.0, 1.0);

shapeLayer.geometryFlipped = YES;

但他们都没有工作。

如何将strokeColor图像模式翻转180度以匹配原点UIColor

1 个答案:

答案 0 :(得分:1)

正如您所怀疑的那样,坐标系不同。在这种情况下,原点位于UIImage *flippedPatternImage = [UIImage imageWithCGImage:patternImage.CGImage scale:1.0f orientation:UIImageOrientationLeftMirrored]; UIColor *colorWithImagePattern = [UIColor colorWithPatternImage:flippedPatternImage]; 的左下角。

那么你可以做些什么来弥补这一点,要么是使用图像编辑器自己翻转图像,要么是这样编写代码:

strokeColor

最后将其分配给shapeLayer.strokeColor = path.color.CGColor;

$fields = array(
    'author' => '<div class="comment-left pull-left">
                        <p class="input-block">
                            <label for="comment_name" class="required">'.__('Name',  kopa_get_domain()).' <span>*</span></label>
                            <input type="text" id="comment_name" name="author" class="valid">
                        </p>',
    'email' => '<p class="input-block">
                            <label for="comment_email" class="required">'.__('Email',  kopa_get_domain()).'<span>*</span></label>
                            <input type="text" id="comment_email" name="email" class="valid">
                        </p>',
    'url' => '<p class="input-block">                                                
                            <label for="comment_url" class="required">'.__('Website',  kopa_get_domain()).':</label>
                            <input type="text" name="url" class="valid" id="comment_url">                                                
                        </p>
                    </div>',
);