如何旋转基本视图并仍然确保其子视图仍在正确的位置?
--------
|X | After 90 degree rotate and stretch
| | this should remain the same
| |
| Y|
--------
我认为我需要旋转90度并根据窗口比例拉伸并在子视图上执行相反的操作?
以下不起作用......
- (void) performTransformation:(UIView*)view isBase:(BOOL)isBase
{
if(isBase) {
[view.layer setAffineTransform:CGAffineTransformConcat(
CGAffineTransformMakeRotation(M_PI * 0.5),
CGAffineTransformMakeScale(-(3.0/4.0), (4.0/3.0)))];
} else {
[view.layer setAffineTransform:CGAffineTransformConcat(
CGAffineTransformMakeScale(-(4.0/3.0), (3.0/4.0)),
CGAffineTransformMakeRotation(-M_PI * 0.5))];
}
答案 0 :(得分:0)
您是否根据设备的方向变化进行旋转?如果是这样,您只需使用UIViewController
的-shouldAutorotateToInterfaceOrientation:
方法旋转视图。
要执行您所描述的内容,您可以设置单独的UIView
s'autoresizingMask
属性。在您的示例中,您将执行以下操作:
[viewX setAutoresizingMask:(UIViewFlexibleRightMargin |
UIViewFlexibleBottomMargin )];
[viewY setAutoresizingMask:(UIViewFlexibleTopMargin |
UIViewFlexibleLeftMargin )];
该代码会将第一个视图(我称之为viewX
)设置为左上角,第二个视图设置为右下角。