我有一个使用故事板的 ipad 应用程序,它以横向模式布局。所有标签和图像视图都在故事板中居中。它在横向模式下看起来很棒,但是一旦平板电脑旋转,ipad 就会使用横向屏幕参数重绘小部件,而不是纵向模式的参数。在正确模式下如何让小部件重绘?
问问题
371 次
1 回答
0
您可以使用自动调整大小将视图重绘为 Portait 模式。
或者
您可以使用interfaceOrientation
为在 Portait 模式下未对齐的视图设置精确位置,如下面的代码
注意:仅在不正确的情况下更改小部件框架。
学习使用自动调整大小来定位您的视图......这是更受欢迎的。
对其进行动画处理以使其具有良好的方向感。
对于 iOS 6 使用- (BOOL) shouldAutorotate
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (interfaceOrientation == UIInterfaceOrientationPortrait||
interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown)
{
//Code
dispatch_async(dispatch_get_main_queue(), ^{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
_btn1.frame = CGRectMake(190, 270, 137, 240);
_btn2.frame = CGRectMake(440, 270, 137, 240);
_btn3.frame = CGRectMake(300, 40, 137, 240);
[UIView commitAnimations];
});
}
else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight||
interfaceOrientation == UIInterfaceOrientationLandscapeLeft)
{
dispatch_async(dispatch_get_main_queue(), ^{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationCurve:UIViewAnimationCurveLinear];
_btn1.frame = CGRectMake(250, 180, 137, 240);
_btn2.frame = CGRectMake(640, 180, 137, 240);
_btn3.frame = CGRectMake(440, 40, 137, 240);
[UIView commitAnimations];
});
//Code
}
return YES;
}
于 2013-10-21T14:21:43.677 回答