- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
适用于 iOS 的 Google Primer 应用程序具有表格 View 滚动效果,其中单元格在滚动时相互堆叠。 Primer application :如果你在他们的页面上滚动,你可以看到效果......我所说的效果是在 Primer 的特色类(class)中。我正在尝试用 tableview 重现它。
我尝试在 viewdidscroll 事件中使用单元格的框架。我让它工作了,但是当以某种方式向上移动时它会变得非常跳跃/生涩。此外,当发生抖动时,框架会错误地偏移。我只能在单元格内的标签框架上完成。我的单元格真的很大(超过屏幕的一半)。
如何消除跳跃/ SCSS ?如何为容器 View 位置而不是标签位置设置动画?
带有标签的 scrollViewDidScroll 上的当前动画:
override func scrollViewDidScroll(scrollView: UIScrollView) {
if (self.tableView.contentOffset.y < 0) { return }
let offsetYDifference = oldYOffset - self.tableView.contentOffset.y
oldYOffset = self.tableView.contentOffset.y
let cell = self.tableView.visibleCells.first!
var newOriginY = (cell.textLabel?.frame.origin.y)! - offsetYDifference
if (newOriginY < 0) { //Cells get reused.
newOriginY = newOriginY + cell.frame.height
}
cell.textLabel?.frame = CGRect(x: (cell.textLabel?.frame.origin.x)!,
y: newOriginY,
width: (cell.textLabel?.frame.width)!,
height: (cell.textLabel?.frame.height)!)
}
Custom paging-like behavior在 Storyboard上启用分页设置为关闭:
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {
let offsety = targetContentOffset.memory.y
var smallestCellDiffToContentOffset = abs(offsety - (self.tableView.visibleCells.first?.frame.origin.y)!)
var closestCellOrigin = self.tableView.visibleCells.first?.frame.origin.y
self.tableView.visibleCells.forEach { (cell) -> () in
if (abs(offsety - cell.frame.origin.y) <= smallestCellDiffToContentOffset) {
smallestCellDiffToContentOffset = abs(offsety - cell.frame.origin.y)
closestCellOrigin = cell.frame.origin.y
}
}
targetContentOffset.memory.y = closestCellOrigin!
}
我是一个初学者 swift 开发者,我真的不知道该做什么。提前致谢。
最佳答案
本质上,您看到的是 UITableView
正在阻止您创建此动画的努力。正确的是,更改单元格的框架应该留给 tableview 本身。
您需要的是带有控制单元格位置的自定义布局对象的 UICollectionView
。这将是一项相当大的工作,但您可以进行 UITableView 无法提供的更精细的控制。
结帐 this tutorial有关 Collection View 的自定义布局的简要介绍。我推荐观看 2012 WWDC 视频 Advanced Collection Views and Building Custom Layouts
关于ios - 自定义 tableview 滚动效果,如 google primer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34505712/
目录 1. 数组概述 1.1 数组的定义 1.2 数组的声明 1.3 复合类型的数组 1.4 数组的初始化规则
我在 C++ Primer Plus 书中第 6 章的第 7 个练习中遇到了一些问题。好吧,我认为我把这个练习做得很好,但我的编译器不这么认为。该程序应计算单词开头的元音、辅音和其他字符的数量。问题是
目录 前言 类型转换 变量声明与定义的关系 变量命名规范 复合类型 引用 指针 const限
C++ Primer中有这样一句话:可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个转换。这句话用下面一段代码表示为: ?
第1章 快速入门 1,介绍main函数的意义和其基本结构,return语句。不同平台下编译与执行程序。 2,两个类isrteam与otream与它们的实例对象cin,cout,cerr,clog。
在下一个示例(由documentation提供)中: 我收到此错误: Type 'FunctionComponent & { size: [16, 16]; }' is missing the fo
以下摘自 的第 7.6 章作者:Stanley B. Lippman Josée Lajoie。 A function specified as inline is expanded "in lin
在 C++ Primer 5th Edition 中,有一个关于引用和 const 的部分,在第 97-98 页: const int temp = dval; // create a tempo
我正在关注这本书 - C++ Primer用于学习C++。我在介绍类的章节中间,我一直在解决包含两个类的头文件的问题。 这是两个类和头文件: 屏幕Cls.h: #ifndef SCREENCLS_H
我正在学习“C Primer Plus”,刚刚完成了编程练习,但我在第五章(运算符、表达式和语句)的最后一节上碰壁了。 练习是: 编写一个程序,请求用户输入华氏温度。该程序应将温度读取为 double
Closed. This question is off-topic。它当前不接受答案。
很抱歉转向这里提出这样一个基本问题,但有人可以快速为我解决这个问题吗?然后我会删除线程,以免造成新手困惑。 在以下来自 C++ Primer Plus 文本的示例中,函数声明中的 & 运算符是否指定函
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: GCC linker can’t find standard library? 我想弄乱我在假期得到的这本
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提出有关书籍、工具、软件库等建议的问题。您可以编辑问题,以便可以用事实和引用来回答它。 7年前关
我目前正在学习《C++ Primer》(第 5 版),并且正在努力弄清楚作者在这部分文字中的含义(第 2 章,第 2.1.3 节): ... By default, decimal literals
我正在尝试切换到 Primer design system , 我正在使用 Bootstrap现在。在不实际更改任何内容的情况下进行切换是否安全? 最佳答案 应该是安全的。 在切换到您要使用的 Pri
在 C++ primer 5 Ed 第 12 章中:动态内存。据说:“静态对象在它们之前被分配被使用,并在程序结束时被销毁。” 这是否意味着全局对象在控制通过它们的声明之前被定义和初始化。 我有这个例
为什么 ArrayTP eggweights; ArrayTP donuts;生成两个单独的类,但是 Stack eggs(12); Stack dunkers(13)只生成一个声明?他们不应该是两堆
我正在阅读这本书中关于字符串和文字的第 86 页,但我不明白为什么它会说以下关于字符串 s1 和 s2 的内容。 string s1("hello, "); string s2("world\n")
问题在评论里! 代码: auto beg = text.begin(), end = text.end(); auto mid = text.begin() + (end - beg) / 2; w
我是一名优秀的程序员,十分优秀!