ver significado registro puedo llamadas iconos historial cómo aumentar antiguas ios statusbar in-call

ios - significado - registro llamadas icloud



Detectando si el usuario tiene en la barra de estado de llamadas. (2)

¿Cómo detecto si el usuario está en llamada o atado? Tengo una subvista para iAd así:

_UIiAD = [[self appdelegate] UIiAD]; _UIiAD.delegate = self; [_UIiAD setFrame:CGRectMake(0,470,320,50)]; [self.view addSubview:_UIiAD];/

¿Y se equivoca cuando el usuario está en llamada? ¿Cómo detecto esto?


Creo que tienes un problema en la barra de estado que te hace ver el desplazamiento hacia abajo. Puedes usar el código de abajo para resolver eso

En veloz

self.tabBarController?.tabBar.autoresizingMask = UIViewAutoresizing(rawValue: UIViewAutoresizing.RawValue(UInt8(UIViewAutoresizing.flexibleWidth.rawValue) | UInt8(UIViewAutoresizing.flexibleTopMargin.rawValue)))

Solucionó mi problema causado por la barra de estado cuando el usuario está en una llamada. para referencia del objetivo C haga clic aquí


UIApplicationDelegate tiene estos dos métodos.

// ObjC - (void)application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame; // in screen coordinates - (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame; // Swift func application(_ application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) func application(_ application: UIApplication, didChangeStatusBarFrame oldStatusBarFrame: CGRect)

Y hay Notifications también.

//ObjC UIApplicationWillChangeStatusBarFrameNotification UIApplicationDidChangeStatusBarFrameNotification // Swift Notification.Name.UIApplicationWillChangeStatusBarFrame Notification.Name.UIApplicationDidChangeStatusBarFrame

pero no se publicaron en el lanzamiento de la aplicación, así que no lo recomendaría.

El simulador tiene una herramienta útil para probar eso.

Hardware-> Alternar barra de estado durante la llamada (Y)

Le sugiero que implemente esos métodos en su archivo AppDelegate . Se llamarán cuando la barra de estado cambie su altura. Uno de ellos se llama antes y el otro después del cambio.

Suponiendo que desea que su ViewController sea ​​notificado cuando ocurra el cambio, una opción es enviar notificaciones. Me gusta esto

Primero, agregue esta propiedad / variable en AppDelegate

// ObjC @property (assign, nonatomic) CGRect currentStatusBarFrame; // Swift var currentStatusBarFrame: CGRect = .zero

entonces, implementa willChangeStatusBarFrame

// ObjC - (void) application:(UIApplication *)application willChangeStatusBarFrame:(CGRect)newStatusBarFrame { self.currentStatusBarFrame = newStatusBarFrame; [[NSNotificationCenter defaultCenter] postNotificationName:@"Status Bar Frame Change" object:self userInfo:@{@"current status bar frame": [NSValue valueWithCGRect:newStatusBarFrame]}]; } // Swift func application(_ application: UIApplication, willChangeStatusBarFrame newStatusBarFrame: CGRect) { currentStatusBarFrame = newStatusBarFrame NotificationCenter.default.post( name: NSNotification.Name(rawValue: "Status Bar Frame Change"), object: self, userInfo: ["current status bar frame": newStatusBarFrame]) }

Y hemos terminado con la base de nuestro Status Bar Frame Checker . La siguiente parte que implementa en cualquier ViewController que necesite conocer el marco de la barra de estado.

Cuando quieras obtener el marco de la barra de estado, te gusta

// ObjC [(AppDelegate*)[[UIApplication sharedApplication] delegate] currentStatusBarFrame] // Swift (UIApplication.shared.delegate as! AppDelegate).currentStatusBarFrame

Y para recibir una notificación cuando cambie, agregue esto al método ViewDidLoad .

En objc

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(statusBarFrameChanged:) name:@"Status Bar Frame Change" object:[[UIApplication sharedApplication] delegate]];

Y poner en práctica este método.

- (void) statusBarFrameChanged:(NSNotification*)notification { CGRect newFrame = [[notification.userInfo objectForKey:@"current status bar frame"] CGRectValue]; NSLog(@"new height %f", CGRectGetHeight(newFrame)); }

En Swift

NotificationCenter.default.addObserver(forName: NSNotification.Name(rawValue: "Status Bar Frame Change"), object: nil, queue: nil) { (note) in guard let currentStatusBarFrame = note.userInfo?["current status bar frame"] as? CGRect else {return} print("New Height", currentStatusBarFrame.height) }