【问题标题】:change fillColor of selected CAShapeLayer更改所选 CAShapeLayer 的填充颜色
【发布时间】:2011-11-23 17:35:33
【问题描述】:

我正在尝试更改 CAShapeLayer 的填充颜色,当 它所在的层被触及。 我可以像这样更改点击图层的背景颜色:

-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
CALayer *layer = [(CALayer *)self.view.layer.presentationLayer hitTest:point];
layer = layer.modelLayer;
layer.backgroundColor = [UIColor blueColor].CGColor;
}

这会按预期将“图层”的背景变为蓝色。 我的问题是如何更改“层”内的 CAShapelayer 的颜色? 谢谢!

【问题讨论】:

    标签: iphone objective-c core-animation calayer


    【解决方案1】:

    CAShapeLayer 有一个属性 fillColor,您可以传入 CGColor 进行更改:

    CAShapeLayer* shapeLayer = (CAShapeLayer*)layer.modelLayer;
    shapeLayer.fillColor = [UIColor blueColor].CGColor;
    

    另请参阅:CAShapeLayer Class Reference

    【讨论】:

    • 确实如此。但是.fillColor 属性应该在主线程 上运行。如果这条语句没有运行,请考虑这条语句是否在主线程上运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多