邮件应用程序在编辑模式下如何禁用UISearchBar?

时间:2011-07-31 23:25:19

标签: iphone ios uisearchbar uisearchdisplaycontroller

使用SearchDisplayController并找不到任何可以实现此目的的方法?

2 个答案:

答案 0 :(得分:4)

切换到编辑模式时尝试此操作:

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

反向:

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

您还可以为Alpha更改设置动画以获得额外信用:)

答案 1 :(得分:1)

查看UISearchDisplayDelegateUISearchBarDelegate,了解搜索栏何时处于编辑模式。

以下是一些在searchBar上添加叠加层的代码,我已根据此example进行了改编,

在你的.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];
}

您可以调整Alpha值,直到它以您希望的方式显示。

希望这有帮助!