在上一篇博客中,介紹了有關CGContext相關操做方法,其中能夠直接調用一些方法來進行所繪製圖形的平移,縮放,翻轉等變換。對於圖形了幾何變換,開發者也能夠採用另外一種方式實現,CoreGraphics框架中提供了CGAffineTransform結構體,這個結構體中定義了圖形變換的相關信息。框架
關於CGContext的相關內如博地址客以下:http://www.javashuo.com/article/p-mdgkzrqu-ec.html。函數
CGAffineTransform中定義的方法即意義列舉以下:spa
//建立標準的變換矩陣 CGAffineTransform CGAffineTransformIdentity; //手動建立變換矩陣 CGAffineTransform CGAffineTransformMake(CGFloat a, CGFloat b, CGFloat c, CGFloat d, CGFloat tx, CGFloat ty); //建立平移變換 CGAffineTransform CGAffineTransformMakeTranslation(CGFloat tx, CGFloat ty); //建立縮放變換 CGAffineTransform CGAffineTransformMakeScale(CGFloat sx, CGFloat sy); //建立旋轉變換 CGAffineTransform CGAffineTransformMakeRotation(CGFloat angle); //判斷某個變化是不是來自標準矩陣的變換 bool CGAffineTransformIsIdentity(CGAffineTransform t); //對某個變換矩陣進行平移變換 CGAffineTransform CGAffineTransformTranslate(CGAffineTransform t, CGFloat tx, CGFloat ty); //對某個變換矩陣進行縮放變換 CGAffineTransform CGAffineTransformScale(CGAffineTransform t, CGFloat sx, CGFloat sy); //對某個變換矩陣進行旋轉變換 CGAffineTransform CGAffineTransformRotate(CGAffineTransform t, CGFloat angle); //對某個變換矩陣進行翻轉變換 CGAffineTransform CGAffineTransformInvert(CGAffineTransform t); //對兩個變換矩陣進行計算 CGAffineTransform CGAffineTransformConcat(CGAffineTransform t1, CGAffineTransform t2); //比較兩個變換矩陣是否相同 bool CGAffineTransformEqualToTransform(CGAffineTransform t1, CGAffineTransform t2); //獲取應用變換後某點的座標 CGPoint CGPointApplyAffineTransform(CGPoint point, CGAffineTransform t); //獲取應用變換後某個區域的尺寸 CGSize CGSizeApplyAffineTransform(CGSize size, CGAffineTransform t); //獲取應用變換後某個區域的位置和尺寸 CGRect CGRectApplyAffineTransform(CGRect rect, CGAffineTransform t);
上述變換方法能夠直接做用於View,示例以下:.net
- (void)viewDidLoad { [super viewDidLoad]; UIImageView * view = [[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)]; view.backgroundColor =[UIColor whiteColor]; view.image = [UIImage imageNamed:@"image"]; view.transform = CGAffineTransformRotate(CGAffineTransformIdentity, M_PI_4); [self.view addSubview:view]; }
專一技術,熱愛生活,交流技術,也作朋友。code
——琿少 QQ羣:203317592orm