UITableView 上的滚动视图
Posted
技术标签:
【中文标题】UITableView 上的滚动视图【英文标题】:Scroll view on a UITableView 【发布时间】:2014-03-19 00:51:53 【问题描述】:我有一个继承自 UIViewController 的类,上面有表格视图和搜索视图,如下所示:
//MyClass.h
@interface MyClass : UIViewController <UITableViewDataSource, UITableViewDelegate,
UISearchBarDelegate>
@property (nonatomic, strong) IBOutlet UITableView *tableView;
@property (nonatomic, strong) IBOutlet UISearchBar *searchBar;
@end
所以我注意到,当我从 UITableViewController 继承类时,我自己获得了表格视图上的滚动视图,我的意思是我不必添加任何特殊代码来获得表格上的滚动视图看法。
当我使用 UIViewController 时,是否需要添加任何代码才能在表格视图上显示滚动视图/滚动?我在桌子上看不到任何滚动视图。
可能是一个愚蠢的问题,但我没有太多使用 UIViewController。
【问题讨论】:
【参考方案1】:听起来你有两个不同的问题。
-
以某种固定的相互关系布置视图
用足够的数据填充 UITableView 以使其滚动
对于第一个问题,您可以在父视图中以编程方式布局两个元素(searchBar、tableView),或者您可以使用 xib(发音为“nib”)或故事板来布局视图彼此相关. 以编程方式布局它们可能是最容易让它发挥作用并真正理解元素如何组合在一起的方法,但最终你应该学习如何在 xib 文件中完成这个布局步骤,(可能也应该使用 AutoLayout)
对于第二个问题,您需要实现 UITableViewDataSource 协议和 UITableViewDelegate 协议方法,它们为 tableView 提供填充屏幕所需的一切,并为您提供您没有看到的滚动行为。
确保 tableView
在您的 MyClass
实例中将其数据源和委托设置为 self
【讨论】:
【参考方案2】:是否需要添加任何代码才能在表格视图上显示滚动视图/滚动 当我使用 UIViewController 时?
是的,您需要添加更多代码以及所有这些delegate
、datasource
、outlets
。除非您的 ViewController
需要比 UITableView
更多的控件,否则使用 UITableViewController
会更容易,因为一切都已实现
【讨论】:
我的 UITableViewController 可以放一个搜索栏吗?我想这应该是我没有使用它的主要原因,因为我有一个旋转器,它会在检索结果时旋转。此微调器不应覆盖搜索栏。根据我的理解,如果我使用 UITableViewController 并在其上放置一个搜索栏,微调器将与搜索栏一起覆盖整个视图。我说的对吗? 是的,您可以添加一个搜索栏,微调器是什么,是UIActivityIndicator
?如果是这样,那么我猜它的清洁剂是以编程方式添加它
是的,它的 UIActivityIndicator
那么你应该可以将其添加为子视图[self.searchbar addSubview:activityIndicator];
不,我不希望它出现在搜索栏上,这就是我使用 UIViewController 的原因。使用 UIViewController 我有一个搜索栏和表格视图。所以我在表格视图上添加活动指示器作为 [self.tableView addSubview:activityIndicator] 所以它不覆盖搜索栏。以上是关于UITableView 上的滚动视图的主要内容,如果未能解决你的问题,请参考以下文章
UITableViewCell 上的 UIPanGestureRecognizer 覆盖 UITableView 的滚动视图手势识别器
ios 滚动视图上方的tableview,滚动视图上的按钮无法点击
UIScrollView 中的 UIView 中的 UITableView。滚动表格视图时也不要滚动滚动视图