我有一个带有搜索栏的TableView。但是我想在TableView中添加另一个视图(比如一个标签)(所以它与tableview一起滚动)。例如,如果您打开iPhone手机通讯录应用程序,在所有号码下,您可以看到一个名为“我的号码:”的标签。它必须与搜索栏处于同一层级。我试图在搜索栏上方添加一个新标签,但故事板不允许我这样做。
在这里,如果我将UILabel拖放到此层次结构中,它将替换顶部的搜索栏,或者标签将移至原型单元格内部。没有其他方法可以同时显示搜索栏和标签。
有没有办法做到这一点?
答案 0 :(得分:1)
在视图控制器视图外部创建一个单独的视图(或者在内部,无关紧要。您甚至可以以编程方式创建它)并将其链接到IBOutlet myCustomView。 创建一个IBOutlet searchBar并链接您的UISearchBar
在viewDidLoad中;您可以使用 [searchBar addSubView:myCustomView]; 并在搜索栏上方添加自定义视图。
您可以显示/隐藏(myCustomView.hidden = YES / NO)自定义视图,或者在需要时从superview添加和删除它。
离。
- (IBAction)didTapShowCustomHeaderButton {
myCustomView.hidden = NO;
}
- (IBAction)didTapHideCustomHeaderButton {
myCustomView.hidden = YES;
}
答案 1 :(得分:0)
在代码中添加以下两个代理
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 10, 100, 30)] autorelease];
label.text = @"My Label";
label.backgroundColor = [UIColor clearColor];
return label;
}
-(CGFloat)tableView:(UITableView*)tableView heightForHeaderInSection:(NSInteger)section{
return 30 // this height should be equivalent to the myLabel height u declared in headerView above
}