Ios UIView滚动按钮

Ios UIView滚动按钮,ios,uitableview,scroll,uisegmentedcontrol,Ios,Uitableview,Scroll,Uisegmentedcontrol,我有一个UIView,它有一些元素(UIButtons、UILabels等)来创建一个位于UITableView顶部的“标题”。还有一个工具栏,里面有一个分段控件。这里的想法是,一个视图有两个数据“页面”,根据选择的分段控制按钮,在表中显示不同的单元格 由于表格从iPhone的屏幕延伸出去,用户将滚动表格,从而将“标题”中的元素从屏幕顶部滚动出去(这是需要的,也是预期的)。但是,如果用户点击另一个分段控制按钮(切换“页面”),我似乎无法找到一种方法,通过编程将整个视图滚动回顶部,以便顶部(表格上

我有一个UIView,它有一些元素(UIButtons、UILabels等)来创建一个位于UITableView顶部的“标题”。还有一个工具栏,里面有一个分段控件。这里的想法是,一个视图有两个数据“页面”,根据选择的分段控制按钮,在表中显示不同的单元格

由于表格从iPhone的屏幕延伸出去,用户将滚动表格,从而将“标题”中的元素从屏幕顶部滚动出去(这是需要的,也是预期的)。但是,如果用户点击另一个分段控制按钮(切换“页面”),我似乎无法找到一种方法,通过编程将整个视图滚动回顶部,以便顶部(表格上方)“标题”中的UIButtons和UILables等出现。我可以使用[tableview ScrollToTop]滚动到表的顶部,但我要找的是类似于[self.view ScrollToTop]的东西。。。很遗憾,UIView中不存在这样的东西


有人知道我怎样才能达到预期的效果吗?非常感谢…

你应该考虑在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;
  }
}