gpt4 book ai didi

iphone - 进入编辑模式时动画自定义绘制的 UITableViewCell

转载 作者:IT老高 更新时间:2023-10-28 11:35:44 25 4
gpt4 key购买 nike

背景

首先,非常感谢atebits因为他们的博文内容非常丰富 Fast Scrolling in Tweetie with UITableView .这篇文章详细解释了开发人员如何能够从 Tweetie 中的 UITableViews 中挤出尽可能多的滚动性能。 .

目标

从博文链接的源代码开始 (original) (my github repo):

  1. 允许使用这些自定义单元格的 UITableView 切换到编辑模式,从而公开用于从表格中删除项目的 UI。 (github commit)

  2. 当删除控件从左侧滑入时,将单元格的文本移到一边。这样就完成了,虽然文本在没有动画的情况下来回跳转。 (github commit)

  3. 将动画应用于上述目标 2 中的文本移动,以获得流畅的用户体验。这是我卡住的一步。

问题

介绍此动画以完成目标 3 的最佳方式是什么?如果能以一种不让我的last commit 中的逻辑的方式来完成,那就太好了。因为我喜欢仅移动 View 的冲突部分的选项,而任何非冲突部分(例如右对齐文本)都保留在同一位置或移动不同数量的像素。如果上述方法不可行,那么撤消我的最后一次提交并将其替换为将整个 View 向右滑动的选项也是一个可行的解决方案。

感谢任何人提供的任何帮助,从快速指针和想法一直到代码片段或 github 提交。当然欢迎你来fork my repo如果你愿意。我将继续参与这个问题,以确保任何成功的解决方案都提交给 github 并在此处完整记录。非常感谢您的宝贵时间!

更新的想法

自从我的第一篇文章以来,我一直在思考这个问题,并意识到在 View 中相对于其他文本项移动一些文本项可能会破坏原始博客文章中解决的一些原始性能目标。所以在这一点上,我正在考虑一个解决方案,其中整个单个 subview 被动画到它的新位置可能是最好的。

其次,如果以这种方式完成,可能会出现 subview 具有自定义颜色或渐变背景的情况。希望这可以通过这样一种方式完成,即在其正常位置,背景向左延伸到看不见的程度,这样当 View 向右滑动时,自定义背景在整个单元格中仍然可见。

最佳答案

感谢 Craig's answer这为我指明了正确的方向,我有一个解决方案。我恢复了我的 commit它根据编辑模式移动了文本位置并将其替换为 a new solution在任何时候调用 layoutSubviews 时都会将整个内容 View 设置到正确的位置,从而在切换到和从编辑模式时产生自动动画:

- (void)layoutSubviews
{
CGRect b = [self bounds];
b.size.height -= 1; // leave room for the separator line
b.size.width += 30; // allow extra width to slide for editing
b.origin.x -= (self.editing) ? 0 : 30; // start 30px left unless editing
[contentView setFrame:b];
[super layoutSubviews];
}

通过这样做,我能够删除 ABTableViewCell.m 中的 setFrame: override,因为它以前的逻辑加上我的添加现在可以在 layoutSubviews 中找到。

我在单元格上设置了浅灰色背景,以验证自定义背景是否正常工作,而不会让我们看到它的背后,因为它来回移动并且看起来效果很好。

再次感谢 Craig 和其他对此进行调查的人。

此解决方案的 GitHub 提交:( link )

关于iphone - 进入编辑模式时动画自定义绘制的 UITableViewCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/742829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com