所以我有一个viewcontroller,我把一个scrollview放进去。在scrollview中,我在上半部分放了一堆项目,比如图像,标签和按钮。在下半部分,我提出了一个uitableview。我设置了所有约束和一切。 我使用了以下代码:
let bounds: CGRect = UIScreen.main.bounds
let w:Int = Int(bounds.size.width)
let h:Int = Int(chaptersTableView.contentSize.height)
let temp: Int = 300 + h
scrollView.contentSize = CGSize(width: w, height: temp)
chaptersTableView.frame = CGRect (x: 0, y: 280.5, width: self.view.frame.size.width, height: CGFloat(44 * sampleModel.objectChapterList.count))
我想设置scrollview的内容大小,然后设置我的tableview框架的高度。
tableview意味着包含许多项目,因此我希望用户能够向下滚动,并且滚动视图的整个内容向下滚动以显示更多的tableview。但是,tableview总是被切断,当我在scrollview中向下滚动时,表结束。我必须在tableview内滚动才能访问更多单元格。
即使我用一个像100这样的随机数替换“44 *(我表中的单元格数量)”,它也会首先关闭表格以使其短暂,但是当我点击屏幕时,表格将更改为恢复到屏幕底部的全长(但不是滚动视图的底部)。
我想把滚动视图的上半部分中的所有内容都放在tableview的另一个单元格中,这样它就可以成为表格的一部分,我可以避免这种麻烦,但这将是很多工作,所以我想要看看我是否可以这样做。
如果您需要图片或其他东西,我可以提供。如果我不清楚,请务必发表评论,我可以更好地解释。
答案 0 :(得分:8)
我建议你只使用tableView。您可以在tableView的标题中创建顶视图。这样做不需要维护scrollView的内容大小。
答案 1 :(得分:3)
当两个具有相同方向的可滚动视图相互放置时,它总是会导致问题。我认为在你的情况下最好只在屏幕上放置BFS
:你可以将BFS
放在另一个不可滚动的视图中,它包含静态内容,我们将你的静态内容放在标题中为UITableView
。如果您需要我详细说明这个想法,请告诉我。希望,它会有所帮助。
答案 2 :(得分:2)
我认为你应该这样做:
首先:(见https://forums.developer.apple.com/thread/81895)
tableView.estimatedRowHeight = 0
tableView.estimatedSectionHeaderHeight = 0
tableView.estimatedSectionFooterHeight = 0
tableView.rowHeight = 70
然后
tableView.frame.size.height = tableView.contentSize.height
答案 3 :(得分:0)
我认为您要做的是在UIScrollView
中添加静态表。据我所知,UITableView
是UIScrollView
的子类,这意味着您将UIScrollView
放入另一个。{1}}。这可能会导致滚动有奇怪的行为。
如果您已经计算了内容大小并设置了表格框架大小,那么您可以尝试使用以下代码禁用表格视图的scroll属性:
tableView.scrollEnabled = NO;
告诉我它是怎么回事:))
答案 4 :(得分:0)
根据苹果指南,不应将tableview添加到scrollView。应用可能会被苹果拒绝。
Tableview是scrollView的子类,但不允许在其他上添加scrollview。代替, 1.你可以创建一个自定义视图, 2.将所有UI元素添加到自定义视图中 3.将此自定义视图添加到tableView标题。
希望这会有所帮助。