基本上我試圖實現的是讓我的範圍欄永遠不會消失。IOS7:uisearchdisplaycontroller總是顯示範圍欄
環境:IOS 7,情節串連圖板,一個視圖控制器內我有一個「搜索欄和搜索顯示控制器」和一個單獨的tableview(搜索欄不表裏面)
裏面的視圖或者Controller.h
@property (nonatomic, strong) IBOutlet UISearchBar *candySearchBar;
裏面的觀點Controller.m或者
@synthesize candySearchBar;
我的嘗試:自定義搜索欄類中
- (void) setShowsScopeBar:(BOOL) showsScopeBar
{
if ([self showsScopeBar] != showsScopeBar) {
[super invalidateIntrinsicContentSize];
}
[super setShowsScopeBar:showsScopeBar];
[super setShowsScopeBar: YES]; // always show!
NSLog(@"setShowsScopeBar searchbar");
NSLog(@"%hhd", showsScopeBar);
}
和
searchBarDidEndEditing
在視圖控制器同樣的事情,但後來
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[candySearchBar setShowsScopeBar:YES];
[candySearchBar sizeToFit];
}
我希望我的問題是清楚的,我試過張貼在互聯網上很多的解決方案,其中大部分談論setshowsscopebar,但它似乎並沒有工作。 setshowscopebar中日誌的輸出爲1,但範圍欄仍未顯示。
我仍然認爲自己對代碼是陌生的,故障仍然可能是一個新手的錯誤。
編輯:在視圖控制器另一段代碼,你可以看到我在尋找盲:
-(void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller{
self.searchDisplayController.searchBar.showsCancelButton = YES;
self.searchDisplayController.searchBar.showsScopeBar = YES;
controller.searchBar.showsScopeBar = TRUE;
controller.searchBar.frame = CGRectMake(0, 149, 768, 88);
UIButton *cancelButton;
UIView *topView = self.searchDisplayController.searchBar.subviews[0];
for (UIView *subView in topView.subviews) {
if ([subView isKindOfClass:NSClassFromString(@"UINavigationButton")]) {
cancelButton = (UIButton*)subView;
}
}
if (cancelButton) {
//Set the new title of the cancel button
[cancelButton setTitle:@"Cancel" forState:UIControlStateNormal];
[cancelButton setEnabled:YES];
controller.searchBar.showsScopeBar = YES;
//candySearchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"Flags", @"Listeners", @"Stations", nil];
}
NSLog(@"%@",NSStringFromCGRect(controller.searchBar.frame));
NSLog(@"%@",NSStringFromCGRect(controller.searchBar.bounds));
NSLog(@"%[email protected]",controller.searchBar.hidden);
}
你有沒有得到這個地方?我發現的解決方案只適用於iOS6,當我點擊搜索欄時,範圍欄被隱藏,我無法弄清楚如何讓它重新出現 – msec
你使用故事板或筆尖 – codercat
@msec按照我的回答ios7固定。 – CoolMonster