Varun Varahabotla
Varun Varahabotla

Reputation: 548

How to bring View to top of UIView Hierarchy

My app currently has a search bar and generates a holder view of results dropping down from the search bar. However, the ResultContainerView is behind my other Views. I am wondering how to bring that search bar container view to the top of the UIView hierarchy. I tried using [super bringSubviewToFront:_searchResultsHolderView]; but that did not work. Here is my method for when the searchbar is tapped.

- (void)_expandSearchResults
{
    CCLogVerbose (@"");
    _searchResultsHolderView.alpha = 0.0;
    _searchResultsHolderView.hidden = NO;
    [_searchResultsHolderView setFrameHeight:10];
    [UIView beginAnimations:@"expandSearchResults" context:nil];
    [UIView setAnimationDuration:kAnimationDuration_SearchResults];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector (searchAnimationDidStop:finished:context:)];
    _searchResultsHolderView.alpha = 1.0;
    [_searchResultsHolderView setFrameHeight:_searchResultsHt];
    [super bringSubviewToFront:_searchResultsHolderView];

    [UIView commitAnimations];  // start animation
}

And this is my reloadData method:

- (void)_reloadSearchResults:(NSString *)searchS
{
    CCLogVerbose (@"");
    if ([searchS length] == 0) {
        _searchResults = nil;
        [_searchResultsTableView reloadData];
        return;
    }

    NSAssert (self.patientService != nil, @"The Patient Service is invalid");
    [self.patientService searchPatients:searchS
        expandType:AllPatientExpansions
        success:^(NSArray *list) {
          _searchResults = list;
          [_searchResultsTableView reloadData];
        }
        failure:^(NSError *error) {
          CCLogDebug (@"Failed: %@", error);
        }];
}

Upvotes: 2

Views: 171

Answers (1)

kebabTiger
kebabTiger

Reputation: 652

[self.superview bringSubviewToFront:self];
    [self bringSubviewToFront:_searchResultsHolderView];

First you need to bring self to the top of the stack. After that you can call bringSubViewToFront and bring your _searchResultsHolderView to the front.

Upvotes: 1

Related Questions