/* 打印相关struct NSStringFromCGPoint NSStringFromCGSize NSStringFromCGRect NSStringFromCGAffineTransform NSStringFromUIEdgeInsets */ - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIView *fatherV = [UIView new]; fatherV.frame = CGRectMake(50, 50, 200, 300); fatherV.backgroundColor = [UIColor blueColor]; [self.view addSubview:fatherV]; [fatherV setBounds:CGRectMake(50, 50, 200, 300)]; NSLog(@"father.frame ===%@",NSStringFromCGRect(fatherV.frame)); NSLog(@"father.bounds===%@",NSStringFromCGRect(fatherV.bounds)); UIView *sonView = [UIView new]; sonView.frame = CGRectMake(0, 0, 100, 100); sonView.backgroundColor = [UIColor redColor]; [fatherV addSubview:sonView]; NSLog(@"sonView.frame ===%@",NSStringFromCGRect(sonView.frame));//坐标根据fatherV.frame NSLog(@"sonView.bounds===%@",NSStringFromCGRect(sonView.bounds)); }
//log father.frame ==={{50, 50}, {200, 300}} father.bounds==={{0, 0}, {200, 300}} sonView.frame ==={{0, 0}, {100, 100}} sonView.bounds==={{0, 0}, {100, 100}}
//log father.frame ==={{50, 50}, {200, 300}} father.bounds==={{-50, -50}, {200, 300}} sonView.frame ==={{0, 0}, {100, 100}} sonView.bounds==={{0, 0}, {100, 100}}
此时把father.bounds设为了{-50, -50},致使sonView所在的原点坐标为{-50, -50},设置sonView.frame{0, 0}时,便会向上图坐标平移code
参考文章: http://blog.qiji.tech/archives/13019, https://www.jianshu.com/p/964313cfbdaaorm