ios - 在快速下拉 UITableView 时为 TableView 的 headerView 设置动画

标签 ios uitableview swift uiscrollview mkmapview

我正在尝试在 UITableView 上创建一个不断增长的 UITableViewHeader。我在 UITableView 的 tableHeaderView 中设置了一个 UITableView 和一个 mapView。

tblView.bounces = true
tblView.bouncesZoom = true
tblView.alwaysBounceVertical = true
mapView.frame = CGRectMake(0, 0, self.view.frame.size.width, CGFloat(kMapHeaderHeight))
mapView.mapType = MKMapType.Standard
mapView.zoomEnabled=true
mapView.scrollEnabled = true
mapView.delegate = mapHelper
tblView.tableHeaderView = mapView

并且还实现了 scrollViewDidScroll 委托(delegate),每当它向下滚动时,我都将 headerview 的框架更改为

func scrollViewDidScroll(scrollView: UIScrollView) {
    var scrollOffset = scrollView.contentOffset.y
    println("\(scrollOffset)")
    var headerFrame : CGRect = self.mapView.frame
    if (scrollOffset < 0){
        headerFrame.size.height  -= scrollView.contentOffset.y/3
    }
    self.mapView.frame = headerFrame
}

但是,没有弹跳,它并没有像预期的那样增长。看起来很不清楚。有帮助吗?

我按照这些教程在下拉时创建一个 Growing UITableViewheader UITableVIew header without bouncing when pull down , Expand UITableView Header View to Bounce Area When Pulling Down

这是项目的链接: https://drive.google.com/file/d/0B6dTvD1JbkgBVENUS1ROMzI0Wnc/vie

已编辑:我以某种方式设法产生了效果,但动画看起来很慢

func scrollViewDidScroll(scrollView: UIScrollView) {
        let yPos: CGFloat = -scrollView.contentOffset.y

        if (yPos > 0) {
            var mapViewRect: CGRect = self.mapView.frame
            mapViewRect.origin.y = scrollView.contentOffset.y
            mapViewRect.size.height = kHeaderHeight+yPos
            self.mapView.frame = mapViewRect
        }
    }
let kHeaderHeight:CGFloat = 200

最佳答案

我建议你使用this教程。

最重要的部分:

  • 创建一个scrollView(或者任何UIScrollView的子类)和一个单独的 View (它将作为一个headerView,所以让我们调用if headerView)
  • 将 headerView 和 scrollView 添加为 View 的 subview
  • 实现 scrollViewDidScroll 方法,并将框架逻辑放在那里(当然,如果您使用 autolayout,则必须在那里管理约束)

关于ios - 在快速下拉 UITableView 时为 TableView 的 headerView 设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30274582/

相关文章:

ios - CMTimeMake 用户选择器

objective-c - 归档时命令/usr/sbin/chown失败,出现退出码1错误

ios - 难以尝试实现单独的 UITableViewDelegate

ios - UIDynamicAnimator,removeAllBehaviors() 第一次不起作用

swift - 是否可以通过 openCv 在 iOS Swift 应用程序中使用 Realm 数据库?

ios - CGAffineTransform.identity 在设备旋转后无法正确重置变换

iphone - 每个 UIView 的 ExclusiveTouch

ios - 如何从 SKScene 到 UIViewController?

ios - `reloadRowsAtIndexPath` 崩溃

ios - UITableViewCells Nib 在滚动时显示默认值