ios开启个人热点时视图损坏如何解决?

问题描述 投票:0回答:1

我以编程方式为

UITabBarController
创建视图。

ViewController.m

@interface ViewController ()
{   
    UITabBarController *tabBarController;
    MainViewController *mainView;
    GroupViewController *grpView;
}

-(id)init
{
    self=[super init];

    [self initControl];
    return self;
}


-(void)initControl
{

}

- (void)viewDidLoad {
    [super viewDidLoad];
    
    NSLog(@"ViewController - viewDidLoad");
    self.mainView=[[MainViewController alloc] init];
    self.grpView=[[GroupViewController alloc] initWithNibName:@"GroupViewController" bundle:[NSBundle mainBundle]];
    self.meView=[[MeViewController alloc] initWithNibName:@"MeViewController" bundle:[NSBundle mainBundle]];
    

    
    UITabBarItem *tempItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Device", @"Device") image:[[UIImage imageNamed:@"device1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:1];
    tempItem.selectedImage=[UIImage imageNamed:@"device"];
    mainView.tabBarItem=tempItem;
    tempItem.imageInsets = UIEdgeInsetsMake(0.0, 0, -0.0, 0);
    

    tempItem=[[UITabBarItem alloc] initWithTitle:NSLocalizedString(@"Group", @"Group") image:[[UIImage imageNamed:@"group1"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] tag:2];
    tempItem.selectedImage=[UIImage imageNamed:@"group1"];
    grpView.tabBarItem=tempItem;
    tempItem.imageInsets = UIEdgeInsetsMake(0.0, 0, -0.0, 0);
    
    self.tabBarController= [[UITabBarController alloc] init];
    NSMutableArray *controllers=[[NSMutableArray alloc] initWithCapacity:2];
    
    [controllers addObject:self.mainView];
    [controllers addObject:self.grpView];
    
    self.tabBarController.viewControllers =controllers;
    [self.view addSubview:self.tabBarController.view];
    self.tabBarController.delegate=self;
}

个人热点关闭时也能正常工作。

当我打开热点并且有人连接到 iPhone,然后打开应用程序时。当个人热点打开时,

view
会在屏幕之外,如下面的屏幕截图

个人热点开启时出现问题如何解决?

ios objective-c view uitabbarcontroller hotspot
1个回答
2
投票

检查这个

为状态栏添加观察者改变长度:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(StatusbarspaceHide:) name:UIApplicationWillEnterForegroundNotification object:nil];

状态栏改变时的动作:

-(void)StatusbarspaceHide:(NSNotificationCenter *)notification{ [UIView animateWithDuration:0.35 animations:^{ // CGRect windowFrame = ((UINavigationController *)((UITabBarController *)self.window.rootViewController).viewControllers[0]).view.frame; CGRect windowFrame = self.view.frame; if (self.view.frame.origin.y > 20) { windowFrame.origin.y = self.view.frame.size.height - 20 ;// old status bar frame is 20 } self.view.frame = windowFrame; }]; }
    
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.