Kin*_*gon 28 objective-c uitableview uiscrollview uiimageview ios
使用故事板,我已经放置了一个imageView作为我的tableView's headerView内部ViewController.
这就是我的故事板的设置方式:

根据用户正在查看的数据,viewController将显示或隐藏headerView.我的问题是,当headerView可见并且用户向下拖动时tableView,我如何能够imageView同时调整navigationBar和tableView调整大小以覆盖其间的空间?
这就是它目前的作用:

但这就是我想要的:

任何帮助将不胜感激.我看过视差库,但是没有人支持sectionTitles,我也不一定会选择视差效果.当用户向上滚动时,我希望它弹回到regularView而不是隐藏headerView.谢谢!
更新:
我已按照Dany发布的建议进行了以下操作并完成了以下操作:
Run Code Online (Sandbox Code Playgroud)-(void)scrollViewDidScroll:(UIScrollView*)scrollView { CGRect initialFrame = CGRectMake(0, 0, 320, 160); if (scrollView.contentOffset.y < 0) { initialFrame.size.height =! scrollView.contentOffset.y; childHeaderView.frame = initialFrame; } }childHeaderView是一个imageView,出于某种原因,当我向下拖动时,图像向上移动(就像在navBar后面的一半)并且不返回.任何建议将不胜感激!!谢谢!
我最近发布了一篇关于使用可能有所帮助的约束来完成此事的博客文章,结果证明这是非常直接的.
首先,您应该UIImageView从标题中删除它并将其作为简单添加UIImageView在UITableView那时,因为UITableViewDelegate协议符合UIScrollViewDelegate协议,您可以实现该scrollViewDidScroll:方法来检查何时tableView向下滚动并具有bouncing效果.这样的事情:
-(void)someInitMethod {
initialFrame = yourHeaderView.frame;
}
-(void)scrollViewDidScroll:(UIScrollView*)scrollView {
if(scrollView.contentOffset.y < 0) {
initialFrame.size.height -= scrollView.contentOffset.y;
yourHeaderView.frame = initialFrame;
}
}
Run Code Online (Sandbox Code Playgroud)
另外,请确保您设置适当的contentMode为您UIImageView.另外我认为这个实现会产生弹跳效果,但我不确定,因为我现在无法测试它,但我认为这对你来说是一个很好的起点.
| 归档时间: |
|
| 查看次数: |
19061 次 |
| 最近记录: |