Positioning UITabBar at the top

前端 未结 9 1763
小鲜肉
小鲜肉 2020-11-28 10:30

I\'m a beginner in iOS development. My question is: is it possible to position UITabBar at the top and how? I can\'t position my UITabBar at the top of the view.

9条回答
  •  隐瞒了意图╮
    2020-11-28 11:19

    Is it possible? Sure, but it violates the human interface guidelines.

    Screenshots:

    Portrait Landscape Storyboard

    Code:

    TabController.h:

    #import 
    
    @interface TabController : UITabBarController 
    
    @end
    

    TabController.m:

    #import "TabController.h"
    
    @interface TabController ()
    
    @end
    
    @implementation TabController
    
    - (void)viewDidLoad
    {
        [super viewDidLoad];
    
        self.delegate = self;
    }
    
    - (void)viewWillLayoutSubviews
    {
        [super viewWillLayoutSubviews];
    
        [self.tabBar invalidateIntrinsicContentSize];
    
        CGFloat tabSize = 44.0;
    
        UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
    
        if (UIInterfaceOrientationIsLandscape(orientation))
        {
            tabSize = 32.0;
        }
    
        CGRect tabFrame = self.tabBar.frame;
    
        tabFrame.size.height = tabSize;
    
        tabFrame.origin.y = self.view.frame.origin.y;
    
        self.tabBar.frame = tabFrame;
    
        // Set the translucent property to NO then back to YES to
        // force the UITabBar to reblur, otherwise part of the
        // new frame will be completely transparent if we rotate
        // from a landscape orientation to a portrait orientation.
    
        self.tabBar.translucent = NO;
        self.tabBar.translucent = YES;
    }
    
    - (void)didReceiveMemoryWarning
    {
        [super didReceiveMemoryWarning];
    }
    
    @end
    

提交回复
热议问题