我想以编程方式设置UILabel的位置取决于方向。但是当我回到Portrait时,它不起作用。
这是我的代码:
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
if([[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortrait || [[UIApplication sharedApplication] statusBarOrientation] == UIInterfaceOrientationPortraitUpsideDown)
{
lblUserName.frame = CGRectMake(20, 200, 280, 44);
lblPassword.frame = CGRectMake(20, 246, 280, 44);
}
else
{
lblUserName.frame = CGRectMake(20, 220, 280, 44);
lblPassword.frame = CGRectMake(20, 266, 280, 44);
}
}
答案 0 :(得分:2)
有两种可能性。您可以以编程方式设置标签。并在 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {}
中检查方向条件方法。否则你可以使用自动调整大小的掩码。
答案 1 :(得分:1)
尝试使用此IF条件:
if ( UIInterfaceOrientationIsPortrait(toInterfaceOrientation))
{
}
else {}
答案 2 :(得分:1)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
//write code here
return YES;
}
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
//write code here
}
使用这两种方法在旋转设备时设置标签。