1

我有一个带搜索栏的 TableView。但我想在 TableView 中添加另一个视图(让我们说一个标签)(所以它会随着 tableview 滚动)。例如,如果您打开 iPhone 的电话联系人应用程序,在所有号码下,您会看到一个名为“我的号码:”的标签。必须与搜索栏处于同一层级。我试图在搜索栏上方添加一个新标签,但情节提要不允许我这样做。

ViewController 的文档大纲屏幕截图

在这里,如果我将 UILabel 拖放到此层次结构中,它要么替换顶部的搜索栏,要么将标签放在原型单元格内。没有其他方法可以同时显示搜索栏和标签。

有没有办法做到这一点?

4

2 回答 2

1

在视图控制器的视图之外创建一个单独的视图(或者在内部,没关系。您甚至可以通过编程方式创建它)并将其链接到 IBOutlet myCustomView。创建一个 IBOutlet searchBar 并链接您的 UISearchBar

在 viewDidLoad 中;你可以使用 [searchBar addSubView:myCustomView]; 并在搜索栏上方添加您的自定义视图。

您可以在需要时显示/隐藏(myCustomView.hidden = YES / NO)自定义视图或从超级视图中添加和删除它。

前任。

- (IBAction)didTapShowCustomHeaderButton {
    myCustomView.hidden = NO;
}

- (IBAction)didTapHideCustomHeaderButton {
    myCustomView.hidden = YES;
}
于 2012-11-19T10:02:33.547 回答
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
        }
于 2012-11-09T09:58:59.283 回答