在 QQ的个人信息页面上方有个背景图片,当我们下拉整个页面时,这个背景图会随着拖动距离而变大。下面通过样例演示这个效果如何实现。
1,效果图
当下拉页面时,背景图片会随着偏移量的增加而放大。
2,样例代码
实现方法是在滚动视图(scrollView)的 scrollViewDidScroll响应方法中获取偏移量,并根据偏移量来动态改变 imageView的位置和尺寸。
import UIKit
class ViewController: UIViewController {
let screenWidth = UIScreen.main.bounds.width // 屏幕宽度
let screenHeight = UIScreen.main.bounds.height // 屏幕高度
var imageView: UIImageView! // 图片视图
let imageViewHeight: CGFloat = 200 // 图片默认高度
var tableView: UITableView! //表格视图
let rowNumber = 50 // 表格数据条目数
let rowHeight: CGFloat = 40 // 表格行高
override func viewDidLoad() {
super.viewDidLoad()
// 首先创建一个滚动视图,图片还是tableView都放在这个滚动视图中
let scrollView = UIScrollView()
scrollView.frame = self.view.frame
scrollView.contentSize = CGSize(width: screenWidth,
height: CGFloat(rowNumber) * rowHeight + imageViewHeight)
scrollView.contentInsetAdjustmentBehavior = .never
scrollView.delegate = self
self.view.addSubview(scrollView)
// 初始化图片视图
self.imageView = UIImageView()
self.imageView.frame = CGRect(x: 0, y: 0, width: screenWidth,
height