Ios UIView滚动按钮
我有一个UIView,它有一些元素(UIButtons、UILabels等)来创建一个位于UITableView顶部的“标题”。还有一个工具栏,里面有一个分段控件。这里的想法是,一个视图有两个数据“页面”,根据选择的分段控制按钮,在表中显示不同的单元格 由于表格从iPhone的屏幕延伸出去,用户将滚动表格,从而将“标题”中的元素从屏幕顶部滚动出去(这是需要的,也是预期的)。但是,如果用户点击另一个分段控制按钮(切换“页面”),我似乎无法找到一种方法,通过编程将整个视图滚动回顶部,以便顶部(表格上方)“标题”中的UIButtons和UILables等出现。我可以使用[tableview ScrollToTop]滚动到表的顶部,但我要找的是类似于[self.view ScrollToTop]的东西。。。很遗憾,UIView中不存在这样的东西Ios UIView滚动按钮,ios,uitableview,scroll,uisegmentedcontrol,Ios,Uitableview,Scroll,Uisegmentedcontrol,我有一个UIView,它有一些元素(UIButtons、UILabels等)来创建一个位于UITableView顶部的“标题”。还有一个工具栏,里面有一个分段控件。这里的想法是,一个视图有两个数据“页面”,根据选择的分段控制按钮,在表中显示不同的单元格 由于表格从iPhone的屏幕延伸出去,用户将滚动表格,从而将“标题”中的元素从屏幕顶部滚动出去(这是需要的,也是预期的)。但是,如果用户点击另一个分段控制按钮(切换“页面”),我似乎无法找到一种方法,通过编程将整个视图滚动回顶部,以便顶部(表格上
有人知道我怎样才能达到预期的效果吗?非常感谢…
你应该考虑在UIVIEW和其他元素之间实现一个UISCRelVIEW,或者使表滚动在固定的边界内,这样所有的UI元素都是可见的。通过将contentOffset设置为CGPointZero,可以滚动UIScrollView
请参阅:为什么不将标题使用的UIView设置为UITableView的tableHeaderView
tableView.tableHeaderView = yourUIViewHeader;
你甚至可以把你的分段控制也在那里,如果这是你想要的。就个人而言,我喜欢始终保持分段控制器可见,因为它们是导航的一个重要方面。所以我会把它放在桌子上方控制器的视图中
正如Jeremy所说,您可以使用contentOffset设置滚动位置。如果有两个“页面”的内容或两个数据源共享一个表,则可以通过将每个“页面”的偏移量存储为实例变量(CGPoints)并在用户切换段时为所选页面设置表的contentOffset来更令人信服地伪造两个表的外观。这样,滚动位置在“页面”中保持不变
- (void) yourSegmentedControlAction {
switch (self.yourSegmentedControl.selectedSegmentIndex) {
case 0: // Page 1
self.pageTwoOffset = self.tableView.contentOffset;
// set your page one datasource
self.tableView.contentOffset = self.pageOneOffset;
break;
case 1: // Page 2
self.pageOneOffset = self.tableView.contentOffset;
// set your page two datasource
self.tableView.contentOffset = self.pageTwoOffset;
}
}