我有一个要在其中实现UITableView的应用程序,该应用程序的可滚动属性设置为False。
我已经在UIScrollView中添加了UITableView来完成此任务,现在我希望我的UIScrollView向下滚动到UITableView的最后一个单元格。因此,如何为UIScrollView分配动态高度,以便它可以滚动到UITableView的最后一个单元格。
答案 0 :(得分:0)
您真的需要滚动视图吗?您可以简单地做到这一点而无需滚动视图
<ListView x:Name="SingleBeanView"
ItemsSource="{Binding Beans}"
IsGroupingEnabled="true"
Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2"
BackgroundColor="Transparent">
<ListView.GroupHeaderTemplate>
<DataTemplate>
<ViewCell ios:Cell.DefaultBackgroundColor="Transparent" Height="52">
<Label Text="{Binding Heading}" TextColor="{StaticResource LightTextColor}" FontSize="Large" HorizontalOptions="Start" VerticalOptions="Start" Margin="15,10,0,0"/>
</ViewCell>
</DataTemplate>
</ListView.GroupHeaderTemplate>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="Transparent" Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="{Binding Field1}"/>
<Label Text="{Binding Field2}"/>
<Label Text="{Binding Field3}"/>
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
或
tableView.scrollToRow(at: IndexPath(row: lastIndex, section: 0), at: .middle, animated: true)
Apple也不建议在scrollview内添加tableview Apple style guide
请勿将滚动视图放在另一个滚动视图内。这样做会导致难以控制的界面难以控制。
答案 1 :(得分:0)
我已经解决了这个问题,并在此处发布了我的答案,以便对其他开发人员想要实现这种任务的工作有帮助。
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
self.scrollView.contentSize = CGSize(width: tblHomeTableView.frame.width, height: self.tblHomeTableView.frame.height)
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tblHomeTableView.dequeueReusableCell(withIdentifier: "HomeTableViewCell", for: indexPath) as! HomeTableViewCell
cell.lblDayCoount.text = "Row: \(indexPath.row + 1)"
self.tblHomeTableView.frame.size = tblHomeTableView.contentSize
return cell
}
这将根据UITableView中的内容调整UIScrollView的高度。