gpt4 book ai didi

iphone - iPhone 中旋转后 UIView 框架的奇怪行为

转载 作者:行者123 更新时间:2023-12-03 18:21:21 24 4
gpt4 key购买 nike

创建一个方形 UIView 对象 testView_,并将其添加到 viewDidLoad 中:

- (void)viewDidLoad {
[super viewDidLoad];
CGRect initialRect = testView_.frame;
NSLog(@"before rotation: w %f h %f x %f y %f", initialRect.size.width, initialRect.size.height, initialRect.origin.x, initialRect.origin.y);
testView_.transform = CGAffineTransformMakeRotation(0.1);
NSLog(@"after rotation: w %f, h %f, x %f, y %f", testView_.frame.size.width, testView_.frame.size.height, testView_.frame.origin.x, testView_.frame.origin.y);
testView_.frame = initialRect;
NSLog(@"reassign: w %f, h %f, x %f, y %f", testView_.frame.size.width, testView_.frame.size.height, testView_.frame.origin.x, testView_.frame.origin.y);
}

我在控制台中收到此消息:

2011-04-27 12:30:32.492 Test[31890:207] before rotation: w 100.000000 h 100.000000 x 20.000000 y 20.000000
2011-04-27 12:30:32.494 Test[31890:207] after rotation: w 109.483757, h 109.483757, x 15.258121, y 15.258121
2011-04-27 12:30:32.495 Test[31890:207] reassign: w 117.873589, h 100.000000, x 11.063205, y 20.000000

我无法弄清楚帧值变化背后的逻辑,尤其是最后一个。谁能启发我吗?谢谢。

最佳答案

在 UIView 类引用中,您可以看到 here您不应设置具有与 CGAffineTransformIdentity 不同的变换属性的 View 框架。

如果你想改变变换后的 View 的位置,你应该使用center属性。如果你想调整大小,你应该使用bounds属性。

关于iphone - iPhone 中旋转后 UIView 框架的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5802830/

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