Как почтовое приложение отключает 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;
Вы также можете анимировать изменение альфа для дополнительного кредита:)