2012-03-14 2 views
1

검색 코드를 검색 할 때 검색 디스플레이 컨트롤러를 사용하고 있습니다. 그러나 그것은 약간의 문제를주고 있습니다. 뷰가로드 검색 막대 프레임 일 때 뷰에서 나가지만 뭔가를 검색하려고 할 때마다 필요한 적절한 프레임이 나타납니다. 내 코드에서 문제를 인식 할 수 없습니다. 나는 당신이 문제에 대해 더 분명하게 할 이미지들을 첨부했다.검색 디스플레이 컨트롤러 프레임

프라그 마크 UISearchDisplayController 위임 방법

- (void)handleSearchForTerm:(NSString *)searchTerm 
    { 
    searchbar.frame = CGRectMake(391, 28, 586, 44); 
[self setSavedSearchTerm:searchTerm]; 

if ([self searchResults] == nil) 
{ 
    NSMutableArray *array = [[NSMutableArray alloc] init]; 
    [self setSearchResults:array]; 
} 

[[self searchResults] removeAllObjects]; 

if ([[self savedSearchTerm] length] != 0) 
{ 
    int i = 0; 

    for (NSString *currentString in [[self contentsList]valueForKey:@"name"]) 
    { 
     if ([currentString rangeOfString:searchTerm options:NSCaseInsensitiveSearch].location != NSNotFound) 
     { 
      [[self searchResults] addObject:currentString]; 
      [[self searchResults] addObject:[[[self contentsList]objectAtIndex:i] objectForKey:@"id"]]; 
      [[self searchResults] addObject:[[[self contentsList]objectAtIndex:i] objectForKey:@"category"]]; 
      NSString *searchcategory = [[[self contentsList]objectAtIndex:i] objectForKey:@"category"]; 
      [[self searchResults] addObject:[[[self contentsList]objectAtIndex:i] objectForKey:@"flavour"]]; 
      [[self searchResults] addObject:[[[self contentsList]objectAtIndex:i] objectForKey:@"price"]]; 
      [[self searchResults] addObject:[[[self contentsList]objectAtIndex:i] objectForKey:@"image"]]; 
      } 
     i++; 
     } 
    } 

}

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller 
shouldReloadTableForSearchString:(NSString *)searchString 
{ 
searchbar.frame = CGRectMake(391, 28, 586, 44); 
[self handleSearchForTerm:searchString]; 
return YES; 
} 

- (void)searchDisplayControllerWillEndSearch:(UISearchDisplayController *)controller 
{ 
searchbar.frame = CGRectMake(391, 28, 586, 44); 
[self setSearchResults:nil]; 
[self setSavedSearchTerm:nil]; 
[[self itemstable_ipad]reloadData]; 
} 

-(void)searchmethod 
{ 
searchbar.frame = CGRectMake(391, 28, 586, 44); 
[self setContentsList:categoryarray_ipad]; 
if ([self savedSearchTerm]) 
    { 
    [[[self searchDisplayController] searchBar] setText:[self savedSearchTerm]]; 
    } 
} 

enter image description here

enter image description here

0 : 여기

는 검색하기위한 코드

누군가 검색 막대 프레임을 설정하는 방법을 알고 있다면 제게 해결책을 제공해주십시오.

감사합니다.

답변

0

내 문제를 확인해 주셔서 감사합니다. 검색 디스플레이 컨트롤러 대신 프로그래밍 방식으로 검색 창을 사용하여이 문제를 해결했습니다.

관련 문제