簡體   English   中英

iOS定向問題從橫向到縱向

[英]iOS Orientation issue from landscape to portrait

我已經睡不着了,試圖找出答案。 我有一個支持所有方向的選項卡式應用程序。 當應用程序以縱向啟動並切換為橫向時,一切工作都完全正常。 但是,當應用在橫向模式下啟動,然后切換為縱向模式時,我只會在屏幕的下半部分失去響應! 當方向改變時,似乎背景中的某些內容無法將“用戶交互”區域從橫向范圍調整為縱向范圍。

我目前有兩個標簽。 當我切換到第二個選項卡,然后再回到第一個選項卡時,問題就消失了! 我可以再次與屏幕的下半部分進行互動。 當我在viewDidLoad(而不是viewDidAppear)中設置選項卡視圖控制器之前,遇到了類似的問題。 現在一切都在viewDidAppear中。

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
    // Custom initialization
}
return self;
}

- (void)viewDidLoad
{
  [super viewDidLoad];
}

- (void)viewDidAppear:(BOOL)animated
{
NSArray* controllers = nil;

    TimeTableViewController * timeTableViewController = [[TimeTableViewController alloc] init];

    FRLayeredNavigationController *timeTableNavController = [[FRLayeredNavigationController alloc] initWithRootViewController:timeTableViewController configuration:^(FRLayeredNavigationItem *item)
    {
        item.hasChrome = YES;

    }];
    timeTableNavController.dropLayersWhenPulledRight = true;



    TestViewController* vc2 = [[TestViewController alloc] init];
    timeTableNavController.tabBarItem = [[UITabBarItem alloc]
                      initWithTitle:@"Student Lookup"
                      image:[UIImage imageNamed:@"search_gray.png"]
                      tag:0];


    timeTableNavController.tabBarItem = [[UITabBarItem alloc]
                                         initWithTitle:NSLocalizedString(@"Attendance", @"Attendance")
                                         image:[UIImage imageNamed:@"attendance_gray.png"]
                                         tag:0];
    timeTableNavController.view.backgroundColor = [UIColor lightGrayColor];

controllers = [NSArray arrayWithObjects:timeTableNavController,vc2, nil];
self.viewControllers = controllers;

}

- (BOOL)shouldAutorotateToInterfaceOrientation:  (UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return YES;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

我認為FRLayeredNavigationController庫不是問題。 從風景切換為人像時,我可以調用任何方法來重新調整“響應區域”嗎? 那將是救生員。 有人請打理一下我!

實際上,當您以橫向模式啟動應用程序時,它應該以縱向啟動,然后您的視圖控制器需要旋轉它。

實際上,您有3種方法:

  1. 首先,我認為最好的是: https : //stackoverflow.com/a/10533561/2204866
  2. 或者,您可以為每種模式使用單獨的xib創建單獨的視圖。 支持多種方向的最簡單方法? 當應用程序處於橫向模式時,如何加載自定義NIB?
  3. 最后使用自動布局。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM