Ios 滚动ViewController内容
我在视图控制器视图中看到的是:Ios 滚动ViewController内容,ios,objective-c,uitableview,uiscrollview,Ios,Objective C,Uitableview,Uiscrollview,我在视图控制器视图中看到的是: 固定高度的图像 少数标签 具有n行的表视图 渲染后,我希望这里的所有内容都在滚动视图中,以便用户可以根据需要滚动整个屏幕。请注意,scrollView需要扩展到tableView的整个大小才能显示其全部内容。我尝试过不同的方法,但是做不到。我希望能有任何指针或代码段来完成这项工作。基本上有两种方法 tableHeaderView 第一种方法涉及您拥有的UITableView实例的tableHeaderView属性。您可以简单地添加UITableView,并使用约束
渲染后,我希望这里的所有内容都在滚动视图中,以便用户可以根据需要滚动整个屏幕。请注意,
scrollView
需要扩展到tableView
的整个大小才能显示其全部内容。我尝试过不同的方法,但是做不到。我希望能有任何指针或代码段来完成这项工作。基本上有两种方法
tableHeaderView
第一种方法涉及您拥有的UITableView
实例的tableHeaderView
属性。您可以简单地添加UITableView
,并使用约束/frame/autoresizingMask将其全屏显示。完成后,您只需执行以下操作(即在viewDidLoad
中):
UIView*headerView=[UIView new];
//在这里,我假设您有一个200磅的高视图和一个“self.tableView”UITableView
headerView.frame=CGRectMake(0,0,self.tableView.frame.size.width,200.0);
UIImageView*fixedImageView=[UIImageView新建];
//配置您的imageView。。
[headerView添加子视图:fixedImageView];
//根据需要配置标签,并将其作为子视图添加到headerView
//现在设置`UITableView`headerView
self.tableView.tableHeaderView=headerView;
如果您想在tableHeaderView中使用AutoLayout,我建议您查看
动态滚动视图
另一种方法是创建一个UIScrollView
,将所有内容放入其中,然后让它滚动。这种方法的缺点是,如果对UITableView
使用浮动节标题,它们将不会浮动,因为tableView
将保持固定,而父scrollView
将滚动
另一方面,由于您可以轻松使用约束,这种方法对自动布局更为友好
为此,您开始向视图中添加一个UIScrollView
,并将所有其他视图放在其中。
确保在scrollView
(我假设UIImageView
)和scrollView
顶部之间,以及最后一个视图(我假设UITableView
)和scrollView
底部之间添加垂直间距约束,以避免内容大小不明确
您应该有这样的内容(为了简洁起见,我省略了标签):
请注意,每个视图都位于父视图UIScrollView
在此之后,向表视图
添加高度约束,并向视图控制器子类添加IBOutlet
,如下所示:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *tableViewHeightConstraint;
现在,您只需配置此约束以反映由行等给出的tableView
自然高度。为此,您只需通过以下方式计算高度:
// Resize TableView
CGFloat height = self.tableView.contentSize.height;
self.tableViewHeightConstraint.constant = height;
现在,tableView将调整大小,并且由于其限制,它将调整父级scrollView
contentSize
只要确保在重新加载UITableView
数据源时刷新此高度约束即可