代码摘自OpenFeint源码:
+ (void)transformView:(UIView*)view toOrientation:(UIInterfaceOrientation)orientation
{
CGAffineTransform newTransform =CGAffineTransformIdentity;
CGRect bounds = [[UIScreenmainScreen] bounds];
CGPoint center =CGPointMake(CGRectGetMidX(bounds),CGRectGetMidY(bounds));
switch (orientation)
{
caseUIInterfaceOrientationLandscapeRight:
newTransform =CGAffineTransformMake(0, 1, -1, 0, 0, 0);
bounds =CGRectMake(0.f, 0.f, bounds.size.height, bounds.size.width);
break;
caseUIInterfaceOrientationLandscapeLeft:
newTransform =CGAffineTransformMake(0, -1,1, 0, 0, 0);
bounds =CGRectMake(0.f, 0.f, bounds.size.height, bounds.size.width);
break;
caseUIInterfaceOrientationPortraitUpsideDown:
newTransform =CGAffineTransformMake(-1, 0, 0, -1, 0, 0);
break;
caseUIInterfaceOrientationPortrait:
newTransform =CGAffineTransformTranslate(newTransform, 0, 0);
break;
default:
OFAssert(NO,@"invalid orientation used");
break;
}
[view setTransform:newTransform];
view.bounds = bounds;
view.center = center;
}
本文详细解析了OpenFeint源码中实现iOS设备屏幕旋转的代码。通过具体案例介绍了如何根据不同方向调整视图的变换矩阵及边界,确保视图正确显示。
2142

被折叠的 条评论
为什么被折叠?



