gpt4 book ai didi

iphone - 将 subview 添加到不滚动的 tableview

转载 作者:行者123 更新时间:2023-12-01 18:32:19 25 4
gpt4 key购买 nike

我正在使用 UITableViewController 并想添加一个搜索栏。

我的选择是[self.tableview addSubview:searchBar]self.tableview.tableHeaderView = searchBar我理解,这两个选项都会沿着 tableview 的其余部分滚动搜索栏。但是有没有办法锁定元素,而不是使用 UIViewController 或更改滚动时的框架原点?
我正在考虑一种超越当前 View 层次结构并在其上添加 subview 的方法。

我尝试了相反的方法,将 View 添加到 super View 并将其放在前面
[[self.tableView superview] addSubview:searchBar];
[[self.tableView superview] bringSubviewToFront:searchBar];
}

但它没有用。

最佳答案

UITableViewControllersUIViewControllers其主视图属性为 UITableView .因此这UITableView do 占据了所有的屏幕。

您正在寻找的方法是使用标准 UIViewController其 View 是标准的UIView ,并添加您的 UISearchBarUITableView作为 IB 中的 subview 。

为此,只需:

  • 更改 View Controller 的类,并提及它符合与 tableview 相关的协议(protocol):更改 @interface UITableViewController@interface UIViewController <UITableViewDelegate, UITableViewDataSource>
  • 添加 @property(nonatomic, retain) IBOutlet UITableView* tableView属性到你的头文件,以及相关的 @synthesize tableView;实现中的声明。不要忘记将此属性设置回 nil ( self.tableView = nil ) 在您的 dealloc良好的内存管理
  • 链接您的UITableView InterfaceBuilder 中的实例到这个新创建的 IBOutlet。

  • 因此你仍然有一个 UITableView 但这不会是占据你所有屏幕的主视图;相反,您可以根据需要布局您的 tableView 并使其仅占据屏幕的一部分,并将 UISearchBar 放置在其上方。

    另一种方法是使用 UISearchDisplayController管理您的 UISearchBar。

    关于iphone - 将 subview 添加到不滚动的 tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7379934/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com