Files
niaxx-ios/HBuilder-Hello/ViewController.m
2026-05-10 14:37:17 +08:00

162 lines
5.2 KiB
Objective-C

//
// ViewController.m
// Pandora
//
// Created by Mac Pro_C on 12-12-26.
// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.
//
#import "ViewController.h"
#import "PDRToolSystem.h"
#import "PDRToolSystemEx.h"
#import "AppDelegate.h"
#define kStatusBarHeight 20.f
@implementation ViewController
- (void)loadView
{
PDRCore *h5Engine = [PDRCore Instance];
[super loadView];
[self setStatusBarStyle:h5Engine.settings.statusBarStyle];
_isFullScreen = [UIApplication sharedApplication].statusBarHidden;
if ( _isFullScreen != h5Engine.settings.fullScreen ) {
_isFullScreen = h5Engine.settings.fullScreen;
if ( [self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)] ) {
[self setNeedsStatusBarAppearanceUpdate];
} else {
[[UIApplication sharedApplication] setStatusBarHidden:_isFullScreen];
}
}
self.view.backgroundColor = [UIColor whiteColor];
[h5Engine setContainerView:self.view];
h5Engine.persentViewController = self;
if ( self.showLoadingView ) {
[h5Engine showLoadingPage];
}
}
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
}
#pragma mark -
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
duration:(NSTimeInterval)duration
{
[[PDRCore Instance] handleSysEvent:PDRCoreSysEventInterfaceOrientation
withObject:[NSNumber numberWithInt:toInterfaceOrientation]];
if ([PTDeviceOSInfo systemVersion] >= PTSystemVersion8Series) {
[[UIApplication sharedApplication] setStatusBarHidden:_isFullScreen ];
}
}
- (BOOL)shouldAutorotate
{
return TRUE;
}
- (UIInterfaceOrientationMask)supportedInterfaceOrientations
{
return [[PDRCore Instance].settings supportedInterfaceOrientations];
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if ( [PDRCore Instance].settings ) {
return [[PDRCore Instance].settings supportsOrientation:interfaceOrientation];
}
return UIInterfaceOrientationPortrait == interfaceOrientation;
}
- (BOOL)prefersStatusBarHidden
{
return _isFullScreen;/*
NSString *model = [UIDevice currentDevice].model;
if (UIUserInterfaceIdiomPhone == UI_USER_INTERFACE_IDIOM()
&& (NSOrderedSame == [@"iPad" caseInsensitiveCompare:model]
|| NSOrderedSame == [@"iPad Simulator" caseInsensitiveCompare:model])) {
return YES;
}
return NO;*/
}
- (UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
return UIStatusBarAnimationFade;
}
-(BOOL)getStatusBarHidden {
if ( [PTDeviceOSInfo systemVersion] > PTSystemVersion6Series ) {
return _isFullScreen;
}
return [UIApplication sharedApplication].statusBarHidden;
}
#pragma mark - StatusBarStyle
-(UIStatusBarStyle)getStatusBarStyle {
return [self preferredStatusBarStyle];
}
-(void)setStatusBarStyle:(UIStatusBarStyle)statusBarStyle {
if ( _statusBarStyle != statusBarStyle ) {
_statusBarStyle = statusBarStyle;
if ( [self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)] ) {
[self setNeedsStatusBarAppearanceUpdate];
} else {
[[UIApplication sharedApplication] setStatusBarStyle:_statusBarStyle];
}
}
}
- (UIStatusBarStyle)preferredStatusBarStyle
{
return _statusBarStyle;
}
#pragma mark -
-(void)wantsFullScreen:(BOOL)fullScreen
{
if ( _isFullScreen == fullScreen ) {
return;
}
_isFullScreen = fullScreen;
[[UIApplication sharedApplication] setStatusBarHidden:_isFullScreen withAnimation:_isFullScreen?NO:YES];
if ( [PTDeviceOSInfo systemVersion] > PTSystemVersion6Series ) {
[self setNeedsStatusBarAppearanceUpdate];
}// else {
// return;
// }
CGRect newRect = self.view.bounds;
if ( [PTDeviceOSInfo systemVersion] <= PTSystemVersion6Series ) {
newRect = [UIApplication sharedApplication].keyWindow.bounds;
if ( _isFullScreen ) {
[UIView beginAnimations:nil context:nil];
self.view.frame = newRect;
[UIView commitAnimations];
} else {
UIInterfaceOrientation interfaceOrientation = [UIApplication sharedApplication].statusBarOrientation;
if ( UIDeviceOrientationLandscapeLeft == interfaceOrientation
|| interfaceOrientation == UIDeviceOrientationLandscapeRight ) {
newRect.size.width -=kStatusBarHeight;
} else {
newRect.origin.y += kStatusBarHeight;
newRect.size.height -=kStatusBarHeight;
}
[UIView beginAnimations:nil context:nil];
self.view.frame = newRect;
[UIView commitAnimations];
}
[[PDRCore Instance] handleSysEvent:PDRCoreSysEventInterfaceOrientation
withObject:[NSNumber numberWithInt:0]];
}
}
- (void)didReceiveMemoryWarning{
[[PDRCore Instance] handleSysEvent:PDRCoreSysEventReceiveMemoryWarning withObject:nil];
}
- (void)dealloc {
}
@end