NavigationBar 不必随 UITable 一起滚动

发布于 2024-09-25 10:16:23 字数 297 浏览 2 评论 0原文

我正在开发一个 iPhone 应用程序。我正在使用 UITableViewController 的子类。我向视图添加了一个 NavigationBar: UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];[self.tableView addSubview:navBar];,现在的问题是导航栏与表格一起向下滚动,这是我想避免的。使用 UITableViewController 可以避免它吗?

I'm developing an iPhone app. I'm using a UITable subclassing UITableViewController. I added a NavigationBar to the view: UINavigationBar *navBar = [[UINavigationBar alloc] initWithFrame: CGRectMake(0.0f, 0.0f, 320.0f, 48.0f)];[self.tableView addSubview:navBar];, now the problem is that the navigation bar scroll down with the table and it's what I want to avoid. Is possible to avoid it using the UITableViewController?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落花浅忆 2024-10-02 10:16:23

你说

我正在使用 UITable 子类 UITableViewController

我猜您正在使用子类化 UITableViewController,它自然包含 UITableView。
您的问题是由以下事实引起的:您将 NavigationBar 插入到 UITableView 中,或者更准确地说,插入到属于 TableView 一部分的 UIScrollView 中。
根据您的需求,您有两种选择:

  1. 如果您希望您的应用程序表现得像邮件(因此您的 TableView 将只是视图结构中的一个元素,您可以通过它进行挖掘),您应该使用 UINavigationcontroller 并使您的TableViewController 是 NavigationController 的第一个视图,就像您在 Xcode 中打开“基于导航”的模板时一样。 UINavigationcontroller 已经包含一个 UINavigationBar,因此您不必担心太多。
  2. 如果由于某种原因这不是您想要的,您将必须创建一个 UIView 来保存 UINavigationBar 以及 UITableView。由于使用 UITableViewController 完成这样的设置相当困难,因此您可能希望放弃 TableViewController 并将其替换为一个简单的 ViewController,它实现了“UITableViewDelegate”和“UITableViewDataSource”Delegate。请参阅这篇文章获取更多帮助。

You say

I'm using a UITable subclassing UITableViewController

I guess you are using a subclassed UITableViewController which, naturally, holds a UITableView.
Your problem is caused by the fact, that you inserted the NavigationBar into the UITableView, or, more precisely, into the UIScrollView which is part of the TableView.
Depending on your needs, you have two options:

  1. If you want your app to behave like e.g. Mail (so your TableView will be just one element in a structure of views, through which you can dig down), you should a UINavigationcontroller and make your TableViewController the NavigationController's first view, like when you open the "Navigation based"-Template in Xcode. The UINavigationcontroller will already contain a UINavigationBar, so there isn't much you have to worry about.
  2. If, for some reason, that's not what you want, you will have to create a UIView which holds your UINavigationBar as well as the UITableView. Since accomplishing such a setup with a UITableViewController is known to be rather difficult, you might want to ditch your TableViewController and replace it with a simple ViewController, which implements both the "UITableViewDelegate"- and "UITableViewDataSource"-Delegate. See this post for further help.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文