gpt4 book ai didi

ios - 为什么图层转换会影响 UIView 的框架?

转载 作者:可可西里 更新时间:2023-11-01 03:48:55 25 4
gpt4 key购买 nike

转换 UIView 会影响它的框架。转换 UIView 的图层也会以相同的方式影响 View 框架。所以缩放 View 的层,缩放框架。我试图理解为什么对图层的转换会影响 View 框架(即使设置了 view.layer.masksToBounds = NO)。

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
NSLog(@"Before: %@", NSStringFromCGRect(view.frame));
// Output: {{0, 0}, {50, 50}}

// View transform applied
view.transform = CGAffineTransformMakeScale(2, 2);
NSLog(@"%@", NSStringFromCGRect(view.frame));
// Output: {{-25, -25}, {100, 100}}


// Layer transform applied
view.transform = CGAffineTransformIdentity;
view.layer.transform = CATransform3DMakeScale(2, 2, 1);
NSLog(@"%@", NSStringFromCGRect(view.frame));
// Output: {{-25, -25}, {100, 100}}

最佳答案

一旦你有一个转换,你不应该查看帧值,因为它在那个时候包含的内容是未定义的。 documentation for the frame property on UIView 中提到了这一点:

WARNING

If the transform property is not the identity transform, the value of this property is undefined and therefore should be ignored.

如果您需要修改框架,则必须改用 centerbounds 属性。

关于ios - 为什么图层转换会影响 UIView 的框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29528643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com