Как почтовое приложение отключает UISearchBar в режиме редактирования?

Используя SearchDisplayController и не мог найти какие-либо методы, которые бы сделали это?

2 ответа

Решение

Проверьте UISearchDisplayDelegate и UISearchBarDelegate для того, чтобы знать, когда панель поиска находится в режиме редактирования.

Вот некоторый код для добавления наложения на панель поиска, который я адаптировал из этого примера:

В вашем.h файле

@interface ...
{
    UIView *disableViewOverlay;
    ...
}

@property(retain) UIView *disableViewOverlay;

И в файле.m,

@synthesize disableViewOverlay;

...

-(void) disableSearchBar 
{
    self.disableViewOverlay = [[UIView alloc]
                           initWithFrame:CGRectMake(0.0f,0.0f,320.0f,44.0f)];
    self.disableViewOverlay.backgroundColor=[UIColor blackColor];
    self.disableViewOverlay.alpha = 0;

    self.disableViewOverlay.alpha = 0;
    [self.view addSubview:self.disableViewOverlay];

    [UIView beginAnimations:@"FadeIn" context:nil];
    [UIView setAnimationDuration:0.5];
    self.disableViewOverlay.alpha = 0.4;
    [UIView commitAnimations];
}

-(void) enableSearchBar 
{
    [disableViewOverlay removeFromSuperview];
    [searchBar resignFirstResponder];
}

Вы можете корректировать альфа-значения, пока они не появятся так, как вы этого хотите.

Надеюсь это поможет!

Попробуйте это при переключении в режим редактирования:

self.searchDisplayController.searchBar.userInteractionEnabled = NO;
self.searchDisplayController.searchBar.alpha = .5;

Обратный с:

self.searchDisplayController.searchBar.userInteractionEnabled = YES;
self.searchDisplayController.searchBar.alpha = 1.0;

Вы также можете анимировать изменение альфа для дополнительного кредита:)

Другие вопросы по тегам