2013-08-13 3 views
14

스토리 보드에서보기 컨트롤러에서 상태 표시 줄 아래에 탐색 모음을 추가해 보았습니다.이 표시 줄은 투명하고 탐색 표시 줄처럼 흐려질 것으로 보이는 레이블을 보여줍니다. 네비게이션 뷰 컨트롤러에 포함 된 동일한 뷰 컨트롤러를 배치 할 때iOS 7 상태 표시 줄 투명

enter image description here

는 단, 아래 배경 이미지는 내 의도 인 흐리게 할 수있다.

enter image description here

이 두 가지 방법으로 다른 결과가 무엇입니까? 전나무 메서드로 상태 표시 줄을 흐리게 처리하려면 어떻게해야합니까?

감사합니다.

+1

는 http://meta.stackexchange.com/questions/94465/should-moderators-enforce-ndas-for-software-vendors –

+2

@Caleb 참조 @Caleb 메타에 대한이 답변에서 찾을 수 있습니다. http://meta.stackexchange.com/questions/184625/why-is-there-an-ios-7-tag/184635#184635 –

+0

@BradLarson 아마도 나는 응답 할 시간을 벌어야합니다. 여기에서하는 대신 메타 스레드로 이동하십시오. 간단히 말해서, 우리는 iOS NDA를 위반하는 질문을 마감 한 역사를 가지고 있으며, 적어도 이러한 질문에 주석을다는 것이 중요하다고 생각합니다. 당신의 입장이 모든 SO 사회자 또는 SE의 입장이라고 일반적으로 말하면, 나는 그 근거로 결론을 내리지 않겠습니다. OTOH 대답 할 수없는 닫는 질문에는 명확한 가치가 있습니다. – Caleb

답변

4

iOS 7에서 상태 표시 줄은 기본적으로 투명합니다. 내비게이션 막대가있을 때 사용자가 보게되는 흐림은 실제로 탐색 막대에 의해 만들어집니다. 따라서 탐색 바를 사용하지 않고 원하는 효과를 만들려면 상태 표시 줄 아래에 흐림 효과를 발생시키는보기를 배치해야합니다.

는 참고로 제공하는 프레임보기를 추가

CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; 
+0

안녕하세요. 힌트를 보내 주셔서 감사합니다. 하지만 어떻게해야할지 모르겠습니다. 더 말할 수 있니? – S1U

+0

도움이 될 경우를 대비하여 다시 말해 보겠습니다. iOS에서는 상태 표시 줄이 투명하고보기 컨트롤러가 기본적으로 전체 화면을 차지합니다. 그래서 그것은 큰 변화였습니다. 나 자신에게 익숙해지기까지 약간의 시간이 걸렸습니다. (잘만되면 여기에 잘못이있는 것은 아니며, 나는 몇 주 동안 iOS 7로 작업 해 왔습니다.) 따라서 원하는 색상으로 상태 표시 줄 아래에보기 만하면됩니다.네비게이션 컨트롤러 바는 네가 직접 해줘야 할 네비게이션 바를 가지고 있지 않을 때 이것을 해준다. 그게 더 명확한가요? –

+0

그런 다음 프레임을 만든 후 상태 표시 줄을 반투명하게 만드는 방법은 무엇입니까? –

2

나는 완전히이 테스트를하지만,하지 않은 당신의 PLIST 파일로 이동 한 다음 설정을 확인하십시오

"보기 컨트롤러를 기반 상태 표시 줄 모양 ":"예 "로 설정하면 필요한 각보기 컨트롤러에 고유 한 상태 표시 줄이 표시되어야합니다.

"상태 표시 줄 스타일": 불투명 검정, 회색 및 투명 검정의 세 가지 스타일로 설정할 수 있습니다.

이 방법이 유용했는지 알려주세요.

1

UINavigationController는 다소 이상하고 문서화되지 않은 제약 조건 집합에 따라 UINavigationBar의 높이를 44 포인트 또는 64 포인트로 변경합니다. UINavigationController가 뷰 프레임의 상단이 UIWindow의 상단과 시각적으로 인접 해 있다는 것을 감지하면 64 점의 높이를 가진 탐색 막대를 그립니다. 뷰의 상단이 UIWindow의 상단과 연속적이지 않은 경우 (한 지점 만 떨어져도 해당), 네비게이션 막대가 44 포인트의 높이로 "기존"방식으로 그려집니다. 이 논리는 응용 프로그램의 뷰 컨트롤러 계층 구조 아래에 여러 자식이 있더라도 UINavigationController에 의해 수행됩니다. 이 동작을 방지 할 수있는 방법은 없습니다.

지점 (0,20)에서 시작하는 첫 번째 예제에서보기 계층을 배치하는 것처럼 보입니다. 또한 UIToolbar 또는 UINavigationBar입니까? 후자의 경우 UINavigationController 내부에서 사용하지 않는 이유는 무엇입니까?

UINavigationController를 사용하지 않고 대신 사용자 지정보기 컨트롤러 컨테이너를 사용하는 경우 그에 따라보기를 배치해야합니다.

자세한 설명은 this answer을 참조하십시오.

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if (NSFoundationVersionNumber>NSFoundationVersionNumber_iOS_6_1) { 
    CGRect statusBarFrame = [self.view convertRect: [UIApplication sharedApplication].statusBarFrame fromView: nil]; 
    UIToolbar *statusBarBackground = [[UIToolbar alloc] initWithFrame: statusBarFrame]; 
    statusBarBackground.barStyle = self.navBar.barStyle; 
    statusBarBackground.translucent = self.navBar.translucent; 
    statusBarBackground.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleWidth; 
    [self.view addSubview: statusBarBackground]; 
    } 
} 

네비게이션 바 self.navBar 점은 스토리 보드에 추가 :

1

나는 유사한 UI 디자인과 Matt Hall answer 내가 봤 한 some article에 따라, 나는 이런 식으로 뭔가 가지고 올 수 있습니다. 이것은 iOS7에서 실행될 때만 필요하기 때문에이 조건을 추가했습니다 (내 응용 프로그램은 iOS5를 지원해야합니다).

이것은 매력처럼 작동합니다. (상태 표시 줄의 크기를 적용)


다른 방법도 좋다 : 내가 찾은

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    if (NSFoundationVersionNumber>NSFoundationVersionNumber_iOS_6_1) { 
    CGRect statusBarFrame = [self.view convertRect: [UIApplication sharedApplication].statusBarFrame fromView: nil]; 
    self.navBar.frame = CGRectUnion(statusBarFrame, self.navBar.frame); 
    } 
} 


나는 그것이 을 포함하기 때문에 이것은 단지을 스토리 보드 가장 생각하는 또 다른 솔루션없이 코드는 필수.

  1. 스위치 스토리 보드보기 모드 (로보기 : 아이폰 OS 6.1 및 이전) 6.1에 change view mode
  2. 선택 문제 UINavigationBar 크기 섹션에서
  3. 는 "iOS6의/7 델타"correct size of navigation bar
  4. 스위치에 20 델타 높이를 추가 다시보기를 7.0 모드 (보기 : iOS 7.0 이상)로 설정하고 결과에 만족하십시오.
3

난 당신이 당신이 밀어 모든 뷰 컨트롤러에 탐색 모음을 볼 시간 네비게이션 뷰 컨트롤러와 뷰 컨트롤러를 포함 할 때이 self.navigationController.navigationBar.clipToBounds = NO

0

을 설정하여이를 해결이 그냥 참조를 위해 오래 알고 동일한보기 컨트롤러에서. 첫 번째 경우에는 스토리 보드에서보기 컨트롤러를 선택할 수있는 탐색 막대 객체를 추가하고 속성 검사기 탭 &의 선택 상단 막대에서 반투명 탐색 막대로 이동하십시오. 또한, NDA 및 스택 오버플로에 대한 내 생각이 할 수있는 - enter image description here