【发布时间】:2014-08-12 10:21:41
【问题描述】:
在简单的 UIView 上应用旋转变换后
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * -0.5);
simpleVIew_.transform = trans;
有以下限制
[self addConstraints:@[
[NSLayoutConstraint constraintWithItem: simpleView_ attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual
toItem:nil attribute:NSLayoutAttributeNotAnAttribute
multiplier:1 constant:50],
[NSLayoutConstraint constraintWithItem: simpleView_ attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual
toItem:self attribute:NSLayoutAttributeHeight
multiplier:1 constant:270],
[NSLayoutConstraint constraintWithItem: simpleView_ attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual
toItem:self attribute:NSLayoutAttributeLeft
multiplier:1.0 constant:0],
[NSLayoutConstraint constraintWithItem: simpleView_ attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual
toItem:self attribute:NSLayoutAttributeBottom
multiplier:1.0 constant:0]
]];
我在 iOS7.1 和 iOS8 beta 5 之间得到了两个不同的结果:
iOS7.1
<UIView: 0x1655d990; frame = (0 30; 50 270); transform = [0, -1, 1, 0, 0, 0]; opaque = NO; layer = <CALayer: 0x1655dab0>
iOS8 beta 5
<UIView: 0x16e5a530; frame = (-110 140; 270 50); transform = [0, -1, 1, 0, 0, 0]; opaque = NO; layer = <CALayer: 0x16e61880>>
请注意框架中的差异 - 宽度/高度值已切换,x、y 坐标已更改。
知道为什么 7.1 和 8 之间存在如此巨大的差异吗?
【问题讨论】:
-
我有一个类似的问题,我几乎完全确定这是由于他们如何在 iOS 8 中使所有内容都面向接口(基本上改变了坐标系原点的确定方式),但我没有如果是这样,或者如果 iOS 8 中存在错误,或者其他什么,就完全确定了。现在我已经修改了我的应用程序的一小部分,它使用旋转来使用计算出的 CGRects (ugh)
-
这个问题有什么解决办法吗?
-
还没有,需要查看最新的iOS8版本。我会更新的。
-
您找到解决方案了吗?我没有...赞成你的问题。
-
还没有,你在 iOS 8 GM 上检查过这个吗?
标签: ios objective-c ios8