UINavigationBar和UITableView之间的工具栏?
我有一个UITableViewControllerembedded在UINavigationController。 这个tableView是NSFetchedResultsController的一个实例。 我需要在NavigationController的顶部栏和TableViewController之间添加一个工具栏,但我不知道如何去做(我甚至不知道是否有可能)。 我想做一些像苹果公司的WWDC应用程序(除了他们没有embedded在NavigationController中的TableViewController)。 我需要在栏上有一些控件来驱动NSFetchedResultsController。
有些人build议有类似问题的人使用UITableView而不是TVC,但我需要将TVC作为NSFetchedResultsController的一个实例。
任何想法如何做到这一点? 我需要以编程的方式吗? 如果是这样,怎么样?
顺便说一句,我的目标是与故事板和ARC iOS6 +。
我喜欢的方法是在外层使用UIViewController
,包含工具栏和容纳表的容器视图。 然后在一个单独的UITableViewController
build立你的表格,并用embed segue把它连接到容器视图中。 总的来说,我认为这使得代码更加模块化,更容易遵循,因为高层结构是在故事板中进行布置的。
使用embeddedsegue的步骤如下所示:
- 控制 – 从容器视图拖动到您要embedded的视图控制器,并select“embedded”选项。
- 在属性检查器中给embeddedsegue一个标识符。
- 在父级的
prepareForSegue
方法中configuration表视图控制器,检查你的segue的标识符。
在我的VCollectionViewGridLayout库中有一个这样的例子。 看看Sort&Filter示例项目。
技术说明TN2154:UIScrollView和Autolayout提供了另一种解决scheme:
请注意,您可以通过在视图和滚动视图的子树之外的视图(如滚动视图的超级视图)之间创build约束来使滚动视图的子视图浮动(不滚动)其他滚动内容。
也就是说,即使滚动视图(例如表格视图)修改子视图的框架,自动布局引擎也会在下一个布局过程中重置它。
你需要使用UIViewController,然后在故事板中添加NSFetchedResultsController类的工具栏和tableView实例
你可以制作任何UIView的topBar,然后作为tableHeaderView传递它。 它可以帮助你。
使用UIViewController
而不仅仅是UITableViewController
,你可以很容易地将其他控件放在UITableView
。
希望这可以帮助。
您可以使用UITableViewController(保持UIRefreshControl支持和键盘避免等细节)。 你只需要在一个普通的视图中embedded你的工具栏,并将其放置在你的tableHeaderView中。 然后实现这个滚动视图的委托方法来locking。
#pragma mark - UIScrollViewDelegate - (void)scrollViewDidScroll:(UIScrollView *)scrollView { CGRect rect = self.toolbarContainerView.frame; rect.origin.y = MIN(0,scrollView.contentOffset.y + scrollView.contentInset.top); self.toolbarContainerView.frame = rect; }
请注意,如果您也使用节头,则必须将这些视图发送到您的tableHeaderView之后,否则它们将浮在tableHeaderView之上。
- 根据UICollectionView中的图像dynamic更改单元大小
- Cachly 5.0功能:具有轮廓和山体阴影的新离线地图
- RestKit NSFetchRequest块用于删除孤立的对象
- WKWebView – Javascript确认和警报不起作用
- “推”匹配UIInterpolatingMotionEffect? (即访问UIInterpolatingMotionEffect上的“物理”)
- Cocoapods 1.0:找不到头文件
- 将核心数据实体属性从ViewController A传递给B.
- 如何从UITextView中获取选定的文本框架
- 是否禁止在AppStore的iOS应用程序中使用JIT(just-in-time)编译代码?