gpt4 book ai didi

ios - 如何在修改路径时重绘 CAShapeLayer?

转载 作者:可可西里 更新时间:2023-11-01 06:17:25 28 4
gpt4 key购买 nike

我正在尝试向我的 CAShapeLayer 路径添加一个子路径,但更改不会显示,除非我首先将 nil 赋给路径,然后我将 myPath 重新分配给 CAShapeLayer。我试过 setNeedsRedisplay 但它不起作用。

这是 LoadView 中的代码,其中 myPathshapeLayer 是属性:

// The CGMutablePathRef
CGPathMoveToPoint(myPath, nil, self.view.center.x, self.view.center.y);
CGPathAddLineToPoint(myPath, nil, self.view.center.x + 100.0, self.view.center.y - 100.0);

// The CAShapeLayer
shapeLayer = [CAShapeLayer layer];
shapeLayer.path = myPath;
shapeLayer.strokeColor = [UIColor greenColor].CGColor;
shapeLayer.lineWidth = 2.0;
[self.view.layer addSublayer:shapeLayer];

例如,这是我对路径进行更改的地方。我只是向 myPath 添加了一个新的子路径:

- (void)handleOneFingerSingleTapGesture:(UIGestureRecognizer *)sender
{
// I add a new subpath to 'myPath'
CGPathMoveToPoint(myPath, nil, self.view.center.x, self.view.center.y);
CGPathAddLineToPoint(myPath, nil, self.view.center.x + 100.0, self.view.center.y + 100.0);

// I must do this to show the changes
shapeLayer.path = nil;
shapeLayer.path = myPath;
}

有人知道怎么处理吗?我使用的是 iOS 5.0。

最佳答案

你必须调用 [shapeLayer didChangeValueForKey:@"path"] 来让层重新渲染自己。

关于ios - 如何在修改路径时重绘 CAShapeLayer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917288/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com