如何在故事板上隐藏UISearchbar

时间:2013-01-01 07:02:24

标签: ios5 uisearchbar xcode-storyboard

这更像是化妆品问题。

我已经通过故事板添加了一个搜索栏,我想用故事板隐藏以下内容。

我之前能够使用故事板之前的代码进入图片。

如果可以使用故事板实现这一点,那么有人能指出我正确的方向吗?

干杯, 兰斯

1 个答案:

答案 0 :(得分:0)

在故事板上,选择搜索栏并打开右侧的对象检查器。他们会找到一个名为“隐藏”的房产。选中此框,初始化故事板时将隐藏对象。

如果从搜索栏中按住Ctrl键并在视图控制器中创建属性,则可以在代码中控制隐藏标志。因此,您可以在需要时重新显示它,例如:

self.searchbar.hidden = NO;

编辑于2013年1月1日 - 这是一种不同的方法。 清单:

a)在故事板中的tableview标题视图中添加一个搜索栏。将搜索栏链接到名为searchBar的属性。当你链接它时,xcode会给它一个弱引用,将弱引用更改为strong。例如:

@property (strong, nonatomic) IBOutlet UISearchBar *searchBar; 

b)添加一个名为showSearch的BOOL属性来控制显示和隐藏搜索栏。

@property (nonatomic) BOOL showSearch;

c)将以下方法添加到控制器代码

- (void)setShowSearch:(BOOL)showSearch {

    _showSearch = showSearch;

    if (! _showSearch) {
        self.tableView.tableHeaderView = nil;
    }
    [self.tableView reloadData];

}

- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection: (NSInteger)section
{
    if (self.showSearch && self.tableView.tableHeaderView == nil) {
        return self.searchBar.frame.size.height;
    }
return 0;
}

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
    if (self.showSearch && self.tableView.tableHeaderView == nil) {
       return self.searchBar;
    }
    return nil;
}

默认情况下,这将从显示的搜索栏开始。如果你想隐藏它,只需将以下内容添加到viewDidLoad方法:

self.showSearch = NO;
祝你好运,新年快乐!