iOS:动态更改UIView

时间:2013-07-08 09:05:26

标签: iphone ios uiview addsubview

我有一个应用程序,每次用户绘制一个写意圈时,程序将alloc / init分配给一个圆形类(uiview),它绘制CAShapelayer圆而不是用户绘制的圆形。 现在我希望当用户按下超级视图上的按钮时,绘制的圆圈的alpha将会改变。 这是相关的代码:

blueCircleView =[[ASFBlueCircle alloc]initWithFrame:CGRectMake(startPoint.x-10, startPoint.y-20, 60, 60)];

[self addSubview:blueCircleView];

和类中的init代码:

-(id)initWithFrame:(CGRect)frame{
self = [super initWithFrame:frame];
if (self) {
    // Initialization code

    self.backgroundColor=[UIColor clearColor];
     UIBezierPath *circle = [UIBezierPath bezierPathWithOvalInRect:CGRectMake(0, 0, 75, 75)];
   blueCircleLayer = [CAShapeLayer layer];
    blueCircleLayer.path = circle.CGPath;
    blueCircleLayer.strokeColor = [UIColor blueColor].CGColor;
    blueCircleLayer.fillColor = [UIColor clearColor].CGColor;
    blueCircleLayer.shadowColor =[UIColor blackColor].CGColor;
    blueCircleLayer.shadowOffset = CGSizeMake(0.0f, 5.0f);
    blueCircleLayer.shadowOpacity = 0.7f;
    blueCircleLayer.lineWidth = 7.0;

    [self.layer addSublayer:blueCircleLayer];

1 个答案:

答案 0 :(得分:0)

在ASFBlueCircle.h中添加属性 @property CAShapeLayer * blueCircleLayer;

在init中,在addsublayer之后写下一行 self.blueCircleLayer = blueCircleLayer;

按下按钮时调用的方法 self.blueCircleLayer.color = [UIColor colorWithRed:red green:green blue:blue alpha:alpha] .CGColor;

使用您想要的红色,绿色,蓝色,Alpha值。