【发布时间】:2015-10-28 15:02:53
【问题描述】:
我正在尝试制作一个读取日历事件的应用程序,并在 Swift 2 中制作会议列表。我需要让它看起来像这样:
顶部始终可见。该列表将是可滚动的,并且当用户点击不同的日期时,列表将加载不同的数据。此外,当用户滚动到一天结束并继续滚动时,顶部栏中的天数需要调整(天数必须进一步移动)。 我尝试使用带有导航栏的导航控制器来执行此操作。
这是正确的做法吗?
【问题讨论】:
标签: xcode storyboard swift2 ios9
我正在尝试制作一个读取日历事件的应用程序,并在 Swift 2 中制作会议列表。我需要让它看起来像这样:
顶部始终可见。该列表将是可滚动的,并且当用户点击不同的日期时,列表将加载不同的数据。此外,当用户滚动到一天结束并继续滚动时,顶部栏中的天数需要调整(天数必须进一步移动)。 我尝试使用带有导航栏的导航控制器来执行此操作。
这是正确的做法吗?
【问题讨论】:
标签: xcode storyboard swift2 ios9
一个不错的方法是只使用一个单独的“容器”视图,它包含按钮,并让滚动视图与这个“容器”处于同一级别。这样顶部的视图将不会滚动。
关于根据滚动条更改顶部按钮 - 您可以使用 UIScrollViewDelegate 获取确切位置。由于我不知道确切的情况,因此我无法建议根据滚动位置确定日期的最佳方法是什么。
【讨论】:
但这是正确的方法吗
如果您的意思是“日期可以在导航栏中”,那么不是。这不是正确的方法。
【讨论】:
如果我理解正确,您所需要的只是实现一个水平滚动的集合视图。每次点击集合视图单元格(didSelectItemAtIndexPath 方法)时,表格视图都会重新加载。 干杯。
【讨论】:
我只是设置了 scrollview.frame 以适应视图控制器顶部的按钮高度。如果您使用故事板,请确保您没有滚动视图顶部的按钮。
let width = self.view.frame.size.width
button1.frame = CGRectMake(0, 0, width / 4, 40)
button2.frame = CGRectMake(width / 4, 0, width / 4, 40)
button3.frame = CGRectMake((width / 4) * 2, 0, width / 4, 40)
button4.frame = CGRectMake((width / 4) * 3, 0, width / 4, 40)
button5.frame = CGRectMake(0, 41, width / 4, 40)
button6.frame = CGRectMake(width / 4, 41, width / 4, 40)
button7.frame = CGRectMake((width / 4) * 2, 41, width / 4, 40)
button8.frame = CGRectMake((width / 4) * 3, 41, width / 4, 40)
// scrollview frame size
scrollView.frame = CGRectMake(0, 80, self.view.frame.width, self.view.frame.height)
scrollView.contentSize.height = self.view.frame.height
scrollViewHeight = scrollView.frame.size.height
【讨论】: