我有一个系统提供的列表(例如品牌),用户不可编辑但必须不时更改。
这些东西显示在表格 View 中,并且可以使用默认的 UISearchDisplayController 进行搜索。但是,由于事物列表肯定不完整,我想让用户能够请求将其他事物添加到列表中。 为此,我向原始表格 View 和搜索结果表格 View 添加了一个表格页脚 View ,它提供了一个发送邮件的按钮。
只要搜索结果 TableView 仍然包含条目,它就可以正常工作。我的表页脚 View 显示在搜索结果下方,一切正常。
但是,如果没有找到搜索词的结果,搜索显示 Controller 会在表格 View 的中央显示一个“无结果”标签。这通常看起来很棒,像这样:
但是由于我的 tableFooterView 仍然显示(我希望它是这样的!),“无结果”标签与我的页脚 View 重叠,看起来很糟糕:
我认为在我的例子中我不需要“无结果”标签,因为我的页脚 View 清楚地表明没有结果以及如何处理它。我也不介意,只要不重叠即可。
我该怎么办
如果这是不可能的,我也乐于接受其他显示页脚 View (而不是作为页脚)的方法的建议,这些方法不会有这个问题。但我喜欢这个解决方案,因为我可以在两种情况下(普通 TableView 和搜索结果 TableView )使用它而无需更改任何内容。
最佳答案
首先,请务必记住,使用 UISearchDisplayController 是可定制性和便利性之间的权衡。你可以免费获得很多自动的东西,但如果你需要大量的定制,它可能不适合你的需要。它最适合作为嵌入式解决方案,如果您真的想使用它,我建议您围绕它来处理您的应用程序,而不是试图破解它的行为。
话虽如此,当没有结果时,为什么不让 UITableView 返回一行?此行可以为空,显示一些样板文本或图像(悲伤的脸或与应用匹配的幽默内容)。
要显示单行,UISearchDisplayController 中的默认“No Results”标签将不会显示。这是许多应用程序的默认行为,例如 Instagram(查看“探索”选项卡)、Kindle 和默认的 Notes.app,尽管它们可能没有使用 UISearchDisplayController。
如果您发现此解决方法不适合您的应用,您还可以尝试将“缺少品牌” View 制作成 UISearchResultsTableView 第一部分的标题 View (而不是页脚 View )。这样,“无结果”标签将显示在其下方。将这个想法与单个空行结合起来效果会更好。
第三种选择是将此 View 插入到 UISearchResultsTableView 之上。这可以在每次没有结果时完成(在必要时适本地删除它)或仅一次,使用它的隐藏属性来显示或隐藏它。
隐藏此标签的任何其他方法都可能是 hacky,例如:https://stackoverflow.com/a/11715841/382834 .虽然您当前的逻辑更容易,但它可能会在以后产生负面影响,因此它可能是最糟糕的路径。
关于ios - UISearchDisplayController 配置 "no results" View 不与 tableFooterView 重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22888016/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我有一个在Linux服务器上运行的ruby脚本。它不使用rails或任何东西。它基本上是一个命令行ruby脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que