如何在Path Talk App上编写设置视图控制器?

时间:2014-07-05 13:56:53

标签: ios objective-c uitableview uiimageview storyboard

我想编码"设置"在Path Talk App上查看控制器。这是一种视差效应。 Twitter也有同样的效果。

我用Storyboard开始了一些事情,但它并没有真正起作用:我使用了TableViewController。在TableView内部,我有一个视图,其中包含2张图片(背景和个人资料图片),然后是3个表视图部分。问题是当用户向下拖动时,图片会下降。它与Path Talk App不同,因为在Path Talk App上,图像是固定的。当用户向下拖动时,它们不会向下移动(见图片)。

所以我在GitHub上找到了一个图书馆:https://github.com/apping/APParallaxHeader这可以帮到我,但是在我在图书馆度过一天之前,最好有你的建议。是否可以使用故事板轻松完成,或者库是最佳解决方案?

感谢您的帮助!

1 个答案:

答案 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);
}