2

내가 원하는 것을 설명하기 위해 예제를 알려 드리겠습니다 : 주소록 응용 프로그램에서 테이블보기의 첫 번째 행에있는 검색 필드를 클릭하면 부드럽게 내비게이션 컨트롤러의 제목 표시 줄을 포함하여 전체 화면 (상태 표시 줄 빼기)을 가져옵니다.UISearchDisplayController를 사용할 때 "전체 화면"으로 부드럽게 전환

편집 : 저는 이것이 TabBarController 내에있는 NavigationController 내에있는 UITableView 내에있는 UISearchDisplayController와 관련이 있다는 것을 알고 있습니다. 문제는 검색 디스플레이가 탐색 컨트롤러가 아닌 tableviews 크기 만 차지한다는 것입니다.

내 프로그램에서 UIView 애니메이션을 사용하고 전체 탐색 컨트롤러의 프레임 크기를 조정하여 보이는 화면의 위 부분부터 시작하여이를 모방했습니다. 아래 참조 :

-(void)SetNavContTitleVis:(BOOL)ishidden { 

    [UIView beginAnimations:@"frame" context:nil]; 
    [UIView setAnimationCurve: UIViewAnimationCurveEaseInOut]; 
    [UIView setAnimationDuration: 0.3]; 
    CGRect frameIn; 
    if (ishidden) { 
     frameIn = CGRectMake(0,-46,320,480); 
    } else { 
     frameIn = CGRectMake(0,0,320,480-46); 
    } 
    self.parentViewController.view.frame=frameIn 
    [UIView commitAnimations]; 

} 

이 작업은 정상적으로 처리되지만 해킹 된 것처럼 느껴집니다. 검색 디스플레이 컨트롤러로이 작업을 수행하는 간단한 방법이 있습니까? 디스플레이 크기가 변경되거나 Apple 태블릿이 나오면 나중에 문제가 생길 수있는 해킹이라고 생각합니다. 잠시 둘러 보았지만 UISearchDisplayController를 강제 설정하는 간단한 설정을 찾지 못했습니다. 내비게이션 컨트롤러의 제목 표시 줄을 부드럽게 사용하십시오.

답변

0

검색 창은 기본적으로 애니메이션처럼 움직여야합니다. Apple의 샘플 TableSearch을 확인하십시오.

+1

나는 그 예가 최선이 아닐 것이라고 생각한다. 나는 탭 컨트롤러와 함께 내비게이션 컨트롤러를 가지고있다. 이 방법을 사용하지 않으면 검색 컨트롤러가 맨 위로 이동하지 않습니다. 그것은 tableviews 검색 컨트롤러이기 때문에 단순히 테이블보기 맨 위로 움직입니다. 설치가 복잡하기 때문에 해킹을해야 할 수도 있습니다. – mjdth

+0

여기에서 같은 문제가 발생합니다. 내 원래의 UITableView 예제에서 그림처럼 전체 화면을 차지하지 않으므로 경우가 다릅니다. – Raptor

관련 문제