我有一个 UITableViewCell,里面只包含一个标签。标签被限制在单元格的所有边距(顶部、底部、尾部和前导)。它是一个多行标签(lines = 0)并且有一些静态文本,在横向和纵向的 iPhone X 屏幕上都会占据多行。
这是一个 screenshot具有约束条件的 IB。
行数在代码中设置为 30。(足够的单元格始终占据屏幕)
我已经在一个新项目中实现了以上所有内容。大部分是在 IB 上完成的,UITableViewController 子类仅包含两个方法,numberOfRowsInSection 和 cellForRowAt indexPath。该项目是在 Xcode 9 上使用 Swift 4 创建的,设备在 iOS 11.2 上运行。
这是 UITableViewController 子类的代码
class ViewController: UITableViewController {
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 30
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
return cell
}
}
当 VC 首次启动时,所有单元格的大小都正确。在将设备旋转到横向时,单元格会按预期调整大小。现在,当我将设备旋转回纵向时,单元格占据的高度比它们应该占据的高度要大。
这只发生在 iPhone X 上。这些单元格的布局与所有其他 iPhone 上的预期一致。
此外,我的任何旧项目(使用 Xcode 8 创建)都不会发生这种情况。
After rotating to landscape and back
我一直在尝试从我的旧项目中复制所有属性,但它的大小仍然不正确。
任何输入将不胜感激... 谢谢!
编辑:
正如 Brandon 所指出的,只有当 UITableViewController 嵌入到 UINavigationController 中时才会发生这种情况。嵌入在 UINavigationController 中的 UIViewController 中的 UITableView 显示了正确的行为。 UINavigationController 之外的 UITableViewController 也按预期运行。
最佳答案
嗯..我能够 100% 重现这个..这太奇怪了,因为如果 UITableViewController 没有嵌入到 UINavigationController 中,那么一切正常.. 它嵌入的第二个,它表现出您帖子中显示的行为..
为了修复它,我做了:
override func viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator) {
super.viewWillTransition(to: size, with: coordinator)
self.tableView.reloadRows(at: self.tableView.indexPathsForVisibleRows!, with: .automatic)
}
它的工作原理,但它不是一直重新加载的理想选择。还没有找到另一个解决方案。到目前为止,它只发生在 UITableViewController 嵌入 UINavigationController.. 不会发生 UITableView inside UIViewController embedded in UINavigationController.. 它非常特定于 Table Controller。
这对我来说似乎是个错误。我检查了几乎所有的 Storyboard参数,但没有找到任何解决方案。
关于ios - UITableViewCell 在运行 iOS 11 的 iPhone X 上无法正确调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48141255/
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
我的目标是转换表单输入,例如“100兆字节”或“1GB”,并将其转换为我可以存储在数据库中的文件大小(以千字节为单位)。目前,我有这个:defquota_convert@regex=/([0-9]+)(.*)s/@sizes=%w{kilobytemegabytegigabyte}m=self.quota.match(@regex)if@sizes.include?m[2]eval("self.quota=#{m[1]}.#{m[2]}")endend这有效,但前提是输入是倍数(“gigabytes”,而不是“gigabyte”)并且由于使用了eval看起来疯狂不安全。所以,功能正常,
我在从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""-
在选择我想要运行操作的频率时,唯一的选项是“每天”、“每小时”和“每10分钟”。谢谢!我想为我的Rails3.1应用程序运行调度程序。 最佳答案 这不是一个优雅的解决方案,但您可以安排它每天运行,并在实际开始工作之前检查日期是否为当月的第一天。 关于ruby-如何每月在Heroku运行一次Scheduler插件?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/8692687/
我对最新版本的Rails有疑问。我创建了一个新应用程序(railsnewMyProject),但我没有脚本/生成,只有脚本/rails,当我输入ruby./script/railsgeneratepluginmy_plugin"Couldnotfindgeneratorplugin.".你知道如何生成插件模板吗?没有这个命令可以创建插件吗?PS:我正在使用Rails3.2.1和ruby1.8.7[universal-darwin11.0] 最佳答案 随着Rails3.2.0的发布,插件生成器已经被移除。查看变更日志here.现在
exe应该在我打开页面时运行。异步进程需要运行。有什么方法可以在ruby中使用两个参数异步运行exe吗?我已经尝试过ruby命令-system()、exec()但它正在等待过程完成。我需要用参数启动exe,无需等待进程完成是否有任何rubygems会支持我的问题? 最佳答案 您可以使用Process.spawn和Process.wait2:pid=Process.spawn'your.exe','--option'#Later...pid,status=Process.wait2pid您的程序将作为解释器的子进程执行。除
我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r
我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e
我花了三天的时间用头撞墙,试图弄清楚为什么简单的“rake”不能通过我的规范文件。如果您遇到这种情况:任何文件夹路径中都不要有空格!。严重地。事实上,从现在开始,您命名的任何内容都没有空格。这是我的控制台输出:(在/Users/*****/Desktop/LearningRuby/learn_ruby)$rake/Users/*******/Desktop/LearningRuby/learn_ruby/00_hello/hello_spec.rb:116:in`require':cannotloadsuchfile--hello(LoadError) 最佳
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/