我想编码"设置"在Path Talk App上查看控制器。这是一种视差效应。 Twitter也有同样的效果。
我用Storyboard开始了一些事情,但它并没有真正起作用:我使用了TableViewController。在TableView内部,我有一个视图,其中包含2张图片(背景和个人资料图片),然后是3个表视图部分。问题是当用户向下拖动时,图片会下降。它与Path Talk App不同,因为在Path Talk App上,图像是固定的。当用户向下拖动时,它们不会向下移动(见图片)。
所以我在GitHub上找到了一个图书馆:https://github.com/apping/APParallaxHeader这可以帮到我,但是在我在图书馆度过一天之前,最好有你的建议。是否可以使用故事板轻松完成,或者库是最佳解决方案?
感谢您的帮助!
答案 0 :(得分:1)
从故事板中的普通UIViewController
开始。添加UITableView
,即UIImageView
。 tableView的框架应该占据整个视图,imageView只是顶部所需的部分。
然后让viewController实现UITableViewDelegate
(如果你想从中填充表格,也可以UITableViewDataSource
)。在viewDidLoad
中设置委托和contentInset以将图像视为标题:
- (void)viewDidLoad
{
[super viewDidLoad];
self.tableView.delegate = self;
self.tableView.contentInset = UIEdgeInsetsMake(self.imageView.frame.size.height, 0, 0, 0);
self.tableView.dataSource = self;
}
实施scrollViewDidScroll:
,因为UITableViewDelegate
符合UIScrollViewDelegate
协议,并根据滚动方向移动图片:
- (void)scrollViewDidScroll:(UIScrollView *)scrollView{
CGFloat imageY = -scrollView.contentOffset.y-self.tableView.contentInset.top;
if(imageY>0)
imageY = 0;
self.imageView.frame = CGRectMake(0, imageY, self.view.bounds.size.width, self.imageView.bounds.size.height);
}