2011-01-27 1 views
0

UINavigationItem의 오른쪽에 표시된 단추 대신 UISearchBar를 표시하려고합니다. 이 코드를 사용하고 있습니다 :UINavigationItem의 오른쪽에 UISearchBar를 표시하려면 어떻게합니까?

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    UISearchBar *searchBar = [[UISearchBar alloc] init]; 
    UIBarButtonItem *navRight = [[UIBarButtonItem alloc] initWithCustomView:searchBar]; 
    [[self navigationItem] setRightBarButtonItem:navRight]; 

    [searchBar release]; 
    [navRight release]; 
} 

그러나 표시된 검색 표시 줄은 너비가 약간 픽셀입니다. 나는 그것을 더 넓게 할 필요가있다.

내가 잘못 생각하고 있습니까? 가능한가요?

+0

CGFrame을 사용하여 프레임을 정의하여 UIBarButtonItem의 너비를 변경하거나 가능한 경우 IB – Robin

답변

2

어떤 시점에서 UISearchBar의 프레임을 설정해야합니다.

e.x.

UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, 200, 20)]; 

편집 : 당신이 UISearchBar에서 볼 수있는 UISearchBar

버튼-Y 것은 아래에있는 버튼 - 억양 유물에 관해서는 실제로 UISearchBar의 배경 요소, 검색의없는 결과입니다 막대가 중복되어 있습니다. UIBarButtonItem. 이걸 숨길 수있는 좋은 방법이없는 것 같기 때문에 (누군가 내가 따라 와서 수정 해주기를 바랍니다), SDK 버전 종속성의 보통 위험과 함께 제공되는 hack의 방향으로 만 안내 할 수 있습니다. , 그리고 더 많은 두통에 대한 잠재력.

편집 2 : 또한 UISearchBar의 프레임의 44 높이 (네비게이션 바의 높이) 다음 배경이 네비게이션 바에과 잘 혼합한다 설정할 수

또 다른 잠재적 인 솔루션을 제공합니다. this에 근거하여 나는 최근에 보았습니다.

+0

을 사용하여 추가해 주셔서 감사합니다! 스택 오버플로 바위. 그 밑에 버튼을 숨길 방법이 있습니까? – Ovesh