UIView로 모든 화면을 커버 할 때 UIView로 UIStatusBar를 커버하는 방법은 무엇입니까?UIView로 모든 화면을 커버 할 때 UIView로 UIStatusBar를 커버하는 방법은 무엇입니까? (iPhone)
답변
UIAlertView
과 같은 효과를 만들려는 경우이 작업을 수행 할 수 있다고 생각하지 않습니다. http://bugreporter.apple.com에 Apple과 함께 기능 향상 요청을 제출할 수 있습니다.
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]
당신이 그것을 필요로 할 때 다시 보여 당신이 할 수있는
가장 좋은 것은과 상태 표시 줄을 숨길 수 있습니다.
기본적으로보기를 제거하려는 경우 언제든지 removeFromSuperview
수 있습니다.
해당 API는 제공되지 않습니다. 대체는'setStatusBarHidden : withAnimation :'입니다. – ThomasW
나는 오랫동안 이것을하는 방법을 너무 싸우고 있었다!
UIWindow *keyWin = [UIApplication sharedApplication].keyWindow;
UIWindow *hudWindow = [[UIWindow alloc] initWithFrame:CGRectMake(0.0f, 0.0f, keyWin.frame.size.width, keyWin.frame.size.height)];
hudWindow.backgroundColor = [UIColor blackColor];
hudWindow.alpha = 0.60;
[hudWindow setWindowLevel:10000.0f];
[hudWindow setHidden:NO];
가 즐기십시오 : 마지막으로 다른 모든 창/뷰/상태 표시 등의 위에 사는 있도록 :) 키는 정말 최고에 새 창 windowLevel을 설정하는 것입니다 그것을 알아 냈다!
좀 더 자세히 살펴보면 windowLevel 속성에 특정 수준을 나타내는 몇 가지 상수가 있다는 것을 알게되었습니다 : const UIWindowLevel UIWindowLevelNormal; const UIWindowLevel UIWindowLevelAlert; const UIWindowLevel UIWindowLevelStatusBar; UIWindowLevelStatusBar가 트릭을 찾았습니다. – Sahil
앱이 시작될 때'keyWindow'를 호출하면 값이 nil 일 수 있습니다. 윈도우 프레임을 얻으려면'[[UIScreen mainScreen] bounds]'를 사용하는 것이 더 낫다. – ThomasW
키보드가 화면에 있으면 작동하지 않습니다. – RaffAl
멋진데, 나는이 두 가지 변경을했습니다. UIWindowLevel에 1.0을 추가하면 여전히 상태 표시 줄이 숨겨지고 그 이유는 모르겠습니다.
self.windowLevel = UIWindowLevelStatusBar+2.0f;
self.userInteractionEnabled = NO;
는 스크롤 뷰 누군가가이 상태 표시 줄에 탭 때 맨 위로 스크롤 할 수 있도록 할 것이다 NO에 상태 표시 userInteractionEnabled 속성을 설정.
이것은 할 수 있습니다. UIWindow 만 사용하십시오. 나는 내가 사용하는 방법으로 답을 추가했다. – Sahil