標籤:繪圖 對圖形的操作
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
UIBezierPath *path = [UIBezierPathbezierPath];
//繪圖的起點座標
[path moveToPoint:CGPointMake(50,50)];
//依次串連各個座標
[path addLineToPoint:CGPointMake(50,100)];
[path addLineToPoint:CGPointMake(100,100)];
[path addLineToPoint:CGPointMake(100,50)];
//閉合
[pathclosePath];
//上下文
CGContextRef context =UIGraphicsGetCurrentContext();
//儲存上下文狀態
CGContextSaveGState(context);
//繪製圖形輪廓
[pathstroke];
//移動原點,使各個座標依次移動
CGContextTranslateCTM(context,50,50);
//設定顏色
UIColor *fillColor = [UIColorgreenColor];
//填充顏色
[fillColorsetFill];
//填充
[pathfill];
//再次移動原點座標
CGContextTranslateCTM(context,50,50);
//圖形旋轉
CGContextRotateCTM(context,3.14/4);
fillColor = [UIColororangeColor];
[pathfill];
//[path stroke];
//恢複上下文狀態,
CGContextRestoreGState(context);
CGContextSaveGState(context);
CGContextTranslateCTM(context,50,200);
//圖形陰影
CGContextSetShadow(context,CGSizeMake(10,10),7);
fillColor = [UIColorgrayColor];
[fillColorsetFill];
[pathfill];
CGContextRestoreGState(context);//恢複上下文狀態
CGContextSaveGState(context);//儲存上下文狀態
CGContextTranslateCTM(context,50,300);
//定義漸層
CGGradientRef myGradient;
//聲明色彩空間
CGColorSpaceRef colorSpace =CGColorSpaceCreateDeviceRGB();
CGFloat components[8] = {1.0,0.0, 0.0, 1.0,
0.0, 0.0, 1.0, 1.0
};
CGFloat locations[2] = {0.2,0.8};
int num = 2;
myGradient =CGGradientCreateWithColorComponents(colorSpace, components, locations, num);
[pathaddClip];
CGContextDrawLinearGradient(context, myGradient,CGPointMake(0,0),CGPointMake(100,0),0);
CGColorSpaceRelease(colorSpace);
CGGradientRelease(myGradient);
CGContextRestoreGState(context);
}
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
繪製圖形-移動,旋轉,陰影,漸層