0

我通过 Storyboard 添加了 UITableHeaderView - 只需将视图拖放到 UITableView 顶部并将 @property 添加到 class.h (Xcode 5) 。我想使用该表头来获取进度信息。为此我使用

       self.tableView.tableHeaderView = nil;

当没有进展时隐藏标题。

当我想显示 tableHeaderView 时:

       self.tableView.tableHeaderView = self.myHeaderView;
       [self.tableView reloadData]

但不幸的是 headerView 不会出现。我做错了什么?

谢谢你的帮助。

更新:

我找到了解决我的问题的方法。我为该视图创建了一个 *.nib 文件,并向我的类添加了一个函数

      - (void)showView{ ... }

我比初始化我的观点

     UIView *view[[MyView alloc] initWithFrame:CGRectMake(0,0,CGRectGetWidth(self.view.frame), 50.0)];

并设置我的 tableHeaderView

      self.tableView.tableHeaderView = view;

工作正常。:)

4

1 回答 1

0

我发现将 tableHeaderView Height 设置为 0 可以让我获得同样的功能。

CGRect newFrame = self.tableView.tableHeaderView.frame;
yourSavedHeight = newFrame.size.height;
newFrame.size.height = 0;
self.tableView.tableHeaderView.frame = newFrame;

然后当你想要它回来的时候

CGRect newFrame = self.tableView.tableHeaderView.frame;
yourSavedHeight = newFrame.size.height;
newFrame.size.height = yourSavedHeight;
self.tableView.tableHeaderView.frame = newFrame;

或者您可以将上述两者组合成一个带有 BOOL 参数的方法来缩小或扩大它。

于 2013-10-18T03:04:44.260 回答