CGRect cgRect1 = [[UIScreen mainScreen] applicationFrame];
UISearchBar *mySearchBar = [[UISearchBar alloc]
initWithFrame:CGRectMake(0, 0, cgRect.size.width, 40)];
mySearchBar.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight ;
UITableView *myTableView = [[UITableView alloc]
initWithFrame:CGRectMake(0, 40, cgRect.size.width, cgRect.size.height-40)];
myTableView.autoresizingMask =
UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;
[self.view addSubview:mySearchBar];
[self.view addSubview:myTableView];
이전 버전에서는 올바르게 작동합니다. 검색 표시 줄은 statusbar
및 탐색 표시 줄 아래에 나타납니다 . tableview
검색 창 아래에 표시됩니다
하지만에서 실행 Xcode 5 sdk iOS 7
하면 검색 표시 줄이 표시되지 않고 (상태 표시 줄과 탐색 표시 줄 아래에있는 것으로 생각합니다) 테이블보기 위에 탐색 표시 줄이 나타납니다.
iOS 7
안정적인 릴리스 로 수정 됩니까?
아니면 내 코딩의 문제입니까?
아니면 y (y = statubar height + nav bar height)
값을 추가하여 처리해야 iOS 7
합니까?
최근에 iOS 7에서 내 앱을 테스트하기 위해 Xcode 5 DP를 다운로드했습니다. 가장 먼저 눈치 채고 확인한 것은 상태 표시 줄과 탐색 표시 줄을 고려하여보기의 경계 크기가 항상 조정되는 것은 아니라는 것입니다.
viewDidLayoutSubviews에서 뷰의 경계를 인쇄합니다.
{{0, 0}, {320, 568}}
그 결과 내 콘텐츠가 탐색 표시 줄과 상태 표시 줄 아래에 나타납니다.
메인 화면의 높이를 가져 와서 상태 표시 줄의 높이와 내비게이션 막대의 높이를 빼서 높이를 직접 계산할 수 있다는 것을 알고 있지만 불필요한 추가 작업처럼 보입니다.
다른 사람이이 문제를 경험 한 적이 있습니까?
최신 정보:
이 특정 문제에 대한 해결책을 찾았습니다. 탐색 모음의 반투명 속성을 NO로 설정합니다.
self.navigationController.navigationBar.translucent = NO;
이렇게하면 탐색 표시 줄과 상태 표시 줄 아래에 표시되는보기가 수정됩니다.
그러나 내비게이션 바를 반투명하게하려는 경우에 대한 수정 사항을 찾지 못했습니다. 예를 들어, 사진을 전체 화면으로 볼 때 내비게이션 바가 반투명하고 그 아래에 뷰가 표시되도록하고 싶습니다. 작동하지만 내비게이션 바 표시 / 숨기기를 전환 할 때 더 이상한 결과를 경험했습니다. 첫 번째 하위 뷰 (a UIScrollView
)는 매번 변경된 경계 y 원점을 가져 옵니다 .