美文网首页
IOS开发——旋转(CGAffineTransformMakeR

IOS开发——旋转(CGAffineTransformMakeR

作者: sunny冲哥 | 来源:发表于2018-07-17 18:27 被阅读9次

首先明确frame、bounds、center的概念,这对于后期理解非常重要

frame:(CGRect结构体)该视图左顶点在父视图的坐标系下的位置,以及该视图在父视图中占据的宽和高

bounds:(CGRect结构体)描述的是该视图自己坐标系顶点的基准值,以及该视图自身的大小

center:(CGPoint类型)描述了该视图中心点在父视图坐标系下的位置

更深入的一些差异见这篇文章:http://blog.csdn.net/qq_17354271/article/details/45999265

写了一个小demo来观察视图frame、bounds、center的变化

- (void)viewDidLoad {
    [super viewDidLoad];
    [self printViews];
}
 
- (void)printViews{
    NSLog(@"视图一");
    [self printView:_v1];
    NSLog(@"视图二");
    [self printView:_v1_1];
    NSLog(@"视图三");
    [self printView:_v2];
    NSLog(@"************************************");
}
 
- (void)printView:(UIView*)view{
    NSLog(@"frame = %@",NSStringFromCGRect(view.frame));
    NSLog(@"Bounds = %@",NSStringFromCGRect(view.bounds));
    NSLog(@"Center = %@",NSStringFromCGPoint(view.center));
    
}
 
- (void)transform:(UIView*)view{
//    [view setTransform:CGAffineTransformRotate(CGAffineTransformIdentity, M_PI_2)];
    [view setTransform:CGAffineTransformMakeRotation(M_PI_2)];
    
    NSLog(@"旋转后 视图一");
    [self printView:_v1];
    NSLog(@"旋转后 视图二");
    [self printView:_v1_1];
}
 
- (IBAction)btnTransTouchDown:(id)sender {
    [self transform:_v1];
}

运行效果:

视图一旋转前.png 视图一旋转后.png

旋转前后结果分析:

视图一(v1) 视图二(v1_1 视图一的子视图) 视图三(v2)
frame 变化 不变 不变
bounds 不变 不变 不变
center 不变 不变 不变

视图一旋转90° ,视图一以及其子视图都会发生视图效果改变,但是只有视图一自身frame发生变化,这里值得注意的是bounds并没有发生变化

原因分析:
视图旋转只影响视图本身以及子视图的视觉效果,视图旋转改变了其在父视图中的位置但并未改变自身尺寸,也没有改变子视图在其坐标系的位置,另外该旋转是围绕center为中心进行的,so 只有旋转的视图自身frame发生改变、bounds和center不受影响,子视图的坐标系均不受影响(bounds、center、frame)


原文:https://blog.csdn.net/wenzeliang1013/article/details/52220829

相关文章

  • IOS开发——旋转(CGAffineTransformMakeR

    首先明确frame、bounds、center的概念,这对于后期理解非常重要 frame:(CGRect结构体)该...

  • iOS开发动画(Animation)图片360度不停旋转

    iOS开发动画(Animation)图片360度不停旋转 iOS开发动画(Animation)图片360度不停旋转...

  • iOS Rotation

    iOS屏幕旋转学习笔记iOS开发中使用屏幕旋转功能的相关方法 1、基本知识点解读 了解屏幕旋转首先需要区分两种 o...

  • iOS屏幕方向控制

    iOS屏幕旋转学习笔记 - CocoaChina 苹果开发中文站 - 最热的iPhone开发社区 最热的苹果开发...

  • iOS图片旋转问题

    iOS图片旋转问题 在iOS开发中经常会遇到图片旋转的问题,比如:有时候上传到服务器中的图片方向与iPhone中图...

  • iOS-屏幕旋转截屏相关

    本篇收录各种屏幕旋转知识点等. 1.详解iOS开发中处理屏幕旋转的几种方法2.iOS 个别页面强制横屏,其他页面竖...

  • 屏幕旋转

    屏幕旋转 推荐文档 了解UIWindow——UIWindow实践 iOS屏幕旋转问题总结 IOS:屏幕旋转与变换 ...

  • ios控制屏幕旋转及相关问题

    ios控制屏幕旋转及相关问题 测试开发环境: Xcode 11.3语言环境: Swift 5.0 [TOC] 一、...

  • iOS开发:屏幕的旋转

    Device Orientation:设备方向 UIInterfaceOrientation:界面方向 屏幕旋转的...

  • iOS开发 图片旋转360

    自定义一个方法rotate360OfMyImage -(void)rotate360OfMyImage{ [sel...

网友评论

      本文标题:IOS开发——旋转(CGAffineTransformMakeR

      本文链接:https://www.haomeiwen.com/subject/oqmgpftx.html