加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

swift 下拉放大tableView顶部图片 或 放大顶部地图

发布时间:2020-12-14 06:39:51 所属栏目:百科 来源:网络整理
导读:step 1 定义图片或地图的高度,创建图片或地图视图 //地图高度 let mapHeight:CGFloat = 200 + STATUS_HEIGHT let frame = CGRectMake(0,SCREEN_WIDTH,SCREEN_HEIGHT) tableView = UITableView(frame:frame,style:.Grouped ) tableView.backgroundView = UII

step 1 定义图片或地图的高度,创建图片或地图视图

//地图高度
    let mapHeight:CGFloat = 200 + STATUS_HEIGHT
let frame = CGRectMake(0,SCREEN_WIDTH,SCREEN_HEIGHT)
        tableView = UITableView(frame:frame,style:.Grouped )
        tableView.backgroundView = UIImageView(image: UIImage(named: "bgImage"))
        tableView.separatorStyle = .None
        tableView.delegate = self
        tableView.dataSource = self
        self.view.addSubview(tableView)
        //地图
        mapView = MKMapView(frame:CGRectMake(0,-mapHeight,mapHeight))
        mapView!.mapType = MKMapType.Standard
        mapView!.contentMode = .ScaleAspectFill
        mapView!.clipsToBounds = true
        tableView.addSubview(self.mapView!)
        
        tableView.contentInset = UIEdgeInsetsMake(mapHeight-STATUS_HEIGHT,0)

说明:其中 STATUS_HEIGHT 是状态栏高度
let STATUS_HEIGHT :CGFloat = UIApplication.sharedApplication().statusBarFrame.height

scrollViewDidScroll

step 2 在scrollView 代理方法scrollViewDidScroll 中处理下拉发生的变化

方法1,适用于地图和图片

//地图下拉放大
    func scrollViewDidScroll(scrollView: UIScrollView) {
        let offsetY = scrollView.contentOffset.y
        let radius = -offsetY/mapHeight
        if(-offsetY > mapHeight){
            mapView.transform = CGAffineTransformScale(CGAffineTransformIdentity,radius,radius)
            var frame = mapView.frame
            frame.origin.y = offsetY
            mapView.frame = frame
            
        }
    }


方法2,仅适用于图片

换成图片场景,在方法1的基础上

去掉这一句

mapView.transform = CGAffineTransformScale(CGAffineTransformIdentity,radius)

加上这一句

frame.size.height = -offsetY

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读