首先,非常感谢atebits因为他们的博文内容非常丰富 Fast Scrolling in Tweetie with UITableView .这篇文章详细解释了开发人员如何能够从 Tweetie 中的 UITableViews 中挤出尽可能多的滚动性能。 .
从博文链接的源代码开始 (original) (my github repo):
允许使用这些自定义单元格的 UITableView 切换到编辑模式,从而公开用于从表格中删除项目的 UI。 (github commit)
当删除控件从左侧滑入时,将单元格的文本移到一边。这样就完成了,虽然文本在没有动画的情况下来回跳转。 (github commit)
将动画应用于上述目标 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/
我正在尝试设置一个puppet节点,但rubygems似乎不正常。如果我通过它自己的二进制文件(/usr/lib/ruby/gems/1.8/gems/facter-1.5.8/bin/facter)在cli上运行facter,它工作正常,但如果我通过由rubygems(/usr/bin/facter)安装的二进制文件,它抛出:/usr/lib/ruby/1.8/facter/uptime.rb:11:undefinedmethod`get_uptime'forFacter::Util::Uptime:Module(NoMethodError)from/usr/lib/ruby
我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0
我有一个模型:classItem项目有一个属性“商店”基于存储的值,我希望Item对象对特定方法具有不同的行为。Rails中是否有针对此的通用设计模式?如果方法中没有大的if-else语句,这是如何干净利落地完成的? 最佳答案 通常通过Single-TableInheritance. 关于ruby-on-rails-Rails-子类化模型的设计模式是什么?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.co
我得到了一个包含嵌套链接的表单。编辑时链接字段为空的问题。这是我的表格:Editingkategori{:action=>'update',:id=>@konkurrancer.id})do|f|%>'Trackingurl',:style=>'width:500;'%>'Editkonkurrence'%>|我的konkurrencer模型:has_one:link我的链接模型:classLink我的konkurrancer编辑操作:defedit@konkurrancer=Konkurrancer.find(params[:id])@konkurrancer.link_attrib
我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我已经从我的命令行中获得了一切,所以我可以运行rubymyfile并且它可以正常工作。但是当我尝试从sublime中运行它时,我得到了undefinedmethod`require_relative'formain:Object有人知道我的sublime设置中缺少什么吗?我正在使用OSX并安装了rvm。 最佳答案 或者,您可以只使用“require”,它应该可以正常工作。我认为“require_relative”仅适用于ruby1.9+ 关于ruby-主要:Objectwhenrun
我有一些代码在几个不同的位置之一运行:作为具有调试输出的命令行工具,作为不接受任何输出的更大程序的一部分,以及在Rails环境中。有时我需要根据代码的位置对代码进行细微的更改,我意识到以下样式似乎可行:print"Testingnestedfunctionsdefined\n"CLI=trueifCLIdeftest_printprint"CommandLineVersion\n"endelsedeftest_printprint"ReleaseVersion\n"endendtest_print()这导致:TestingnestedfunctionsdefinedCommandLin