当我改变视图的框架时,图层的框架会随之改变吗?

时间:2018-03-07 12:11:24

标签: ios uiview uikit frame layer

当我改变视野时,图层的框架会随之改变吗?为什么?例如。

UIView *testView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 50)]; 

[self.view addSubview:testView]; 

NSLog(@"(%f,%f,%f,%f)", testView.layer.frame.origin.x, testView.layer.frame.origin.y, testView.layer.frame.size.width, testView.layer.frame.size.height); 

testView.frame = CGRectMake(200, 200, 100, 100); 

NSLog(@"(%f,%f,%f,%f)", testView.layer.frame.origin.x, testView.layer.frame.origin.y, testView.layer.frame.size.width, testView.layer.frame.size.height);

输出:

2018-03-07 22:13:33.251349+0800 ViewLayer[25622:1982995] layer frame:(100.000000,100.000000,100.000000,50.000000) 
2018-03-07 22:13:33.251483+0800 ViewLayer[25622:1982995] layer frame:(200.000000,200.000000,100.000000,100.000000)

1 个答案:

答案 0 :(得分:0)

不,图层的框架a 会随着视图的框架而改变。

为什么呢?因为它们用于不同的任务,并且图层有自己的坐标空间。

我建议您仔细阅读文档 - 这是一个很好的起点:https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html#//apple_ref/doc/uid/TP40004514

如果希望图层的框架随视图的框架而改变,则需要对该视图进行子类化并覆盖/实现layoutSubviews