系统的UIApplication自带这种判断
BOOL statusBarHidden = [UIApplication sharedApplication].statusBarHidden;
但是,如果你的隐藏方式不是通过UIApplication隐藏的,而是用iOS9之后的[UIViewController prefersStatusBarHidden]的方式隐藏的,这种判断就不管用了。
有个小技巧,通过UIApplication的statusBarFrame属性判断,如果状态栏是隐藏的,那么statusBarFrame就是CGRectZero.
// 如果statusBarFrame为CGRectZero,说明状态栏是隐藏的,不论哪种隐藏方式都管用
CGRect statusBarFrame = [UIApplication sharedApplication].statusBarFrame;