我试图用三个页面实现页面 View Controller 。我已经做到了,它在配备 3.5 英寸和 4 英寸显示屏的 iPhone 上运行良好,但在 4.7 英寸和 5.5 英寸显示屏上会出现问题。
我发现隐藏 UIPageViewController 的标准页面控件是导致此错误的原因:当页面控件被隐藏时,UIPageVC 的 View 会更改其高度(+ 页面控件 View 的高度)。
我的页面内容 View Controller 对背景 ImageView 有限制以适应所有尺寸。
这是第一页:
这是第二页:
这是第三页,好的,我们已经到了最后一页:
但看看当我们返回到第二页时会发生什么(页面内容 Controller 的 View 完全向左移动了几个像素):
滑动到第一页 - 同样的结果:
但是! 看看我们在第一页之后转到第二页时看到了什么!现在通过 x 在正确的位置查看页面内容 Controller :
转到最后一页:
让我们回到第二页!神圣的****! View 再次被某些东西移动:
转到第一页,全部在“正确”(错误)位置:
从第一页返回第二页。一切都在正确的位置:
所以,我的问题是这个 UIPageViewController 是怎么回事?我以为我的约束被打破了,但我的日志中没有任何关于它的信息,在 Storyboard 中没有与约束相关的错误。
当我使用两种方法“presentationCountForPageViewController:, presentationIndexForPageViewController:”时一切正常,但按钮上方出现一条白线,其高度等于页面控件 View 的高度(因此,我需要通过删除上面列出的两种方法来隐藏它)。
提前感谢您 future 的建议!
最佳答案
我修好了!但不是以正确的方式,因为它是 iOS 端的错误。
因此,当您尝试隐藏 UIPageViewController 的页面控制 View 时,私有(private)“pageSpacing”属性在 iPhone 6 和 iPhone 6 Plus 上由于意外原因被破坏。很难从 View 中看到和理解它。在我的例子中,对于 iPhone 6 InterPageSpacing 属性已经减少了 4,对于 iPhone 6 Plus - 减少了 6 个值。因此,如果您尝试为 iPhone 4 或 5 设置 pageSpacing 属性,您会在页面之间看到一条白线,但在 6 和 6 Plus 上,这条线消失并且第二个 Controller 的 View 向左移动几个像素。
现在我只是在初始化我的 UIPageViewController 时为 UIPageViewControllerOptionInterPageSpacingKey 设置了不同的值:
- (id)initWithTransitionStyle:(UIPageViewControllerTransitionStyle)style navigationOrientation:(UIPageViewControllerNavigationOrientation)navigationOrientation options:(NSDictionary *)options
{
NSMutableDictionary *dictionary = [NSMutableDictionary new];
NSNumber *pageSpacing =
IS_IPHONE_4_OR_LESS
? @(0)
: IS_IPHONE_5
? @(0)
: IS_IPHONE_6
? @(4)
: @(6);
[dictionary setValue:pageSpacing forKey:UIPageViewControllerOptionInterPageSpacingKey];
self = [super initWithTransitionStyle:style navigationOrientation:navigationOrientation options:dictionary];
return self;
}
是的,修复是脏的,但我没有找到其他方法来修复它,尤其是因为它是 Apple 的错误。
关于ios - iPhone 6 和 iPhone 6 Plus 上页面 View Controller 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28739582/
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
我正在尝试解析一个文本文件,该文件每行包含可变数量的单词和数字,如下所示:foo4.500bar3.001.33foobar如何读取由空格而不是换行符分隔的文件?有什么方法可以设置File("file.txt").foreach方法以使用空格而不是换行符作为分隔符? 最佳答案 接受的答案将slurp文件,这可能是大文本文件的问题。更好的解决方案是IO.foreach.它是惯用的,将按字符流式传输文件:File.foreach(filename,""){|string|putsstring}包含“thisisanexample”结果的
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
require'mechanize'agent=Mechanize.newlogin=agent.get('http://www.schoolnet.ch/DE/HomeDE.htm')agent.clicklogin.link_withtext:/Login/然后我得到Mechanize::UnsupportedSchemeError。 最佳答案 Mechanize不支持javascript但您可以将搜索字段添加到表单并为其分配搜索词并使用mechanize提交表单form=page.forms.firstform.add_fie
print"Enteryourpassword:"pass=STDIN.noecho(&:gets)puts"Yourpasswordis#{pass}!"输出:Enteryourpassword:input.rb:2:in`':undefinedmethod`noecho'for#>(NoMethodError) 最佳答案 一开始require'io/console'后来的Ruby1.9.3 关于ruby-为什么不能使用类IO的实例方法noecho?,我们在StackOverflow上
我有可变数量的表格和可变数量的行,我想让它们一个接一个地显示,但如果表格不适合当前页面,请将其放在下一页,然后继续。我已将表格放入事务中,以便我可以回滚然后打印它(如果高度适合当前页面),但我如何获得表格高度?我现在有这段代码pdf.transactiondopdf.table@data,:font_size=>12,:border_style=>:grid,:horizontal_padding=>10,:vertical_padding=>3,:border_width=>2,:position=>:left,:row_colors=>["FFFFFF","DDDDDD"]pdf.
据我们所知,Jekyll默认分页仅支持index.html,我想创建blog.html并在那里包含分页。有什么解决办法吗? 最佳答案 如果您创建一个名为/blog的目录并在其中放置一个index.html文件,那么您可以向_config.yml表示paginate_path:"blog/page:num"。不是使用根文件夹中的默认index.html作为分页器模板,而是使用/blog/index.html。分页器将根据需要生成类似/blog/page2/和/blog/page3/的页面。这将使您到达yourwebsite.com/b
我正在寻找一种简单的方法来为我在RubyonRails上的项目实现简单的“即将推出”(预启动)页面。用户应该能够留下电子邮件以便在项目启动时收到通知。有没有这样的插件\gem?或者我应该自己做... 最佳答案 LaunchingSoon是一个Rails插件。它还集成了MailChimp或Campaignmonitor. 关于ruby-on-rails-RoR&&"comingsoon"页面,我们在StackOverflow上找到一个类似的问题: https:/
我有一个使用Jekyll托管在GitHub上的静态网站。问题是,我真的不需要master分支,因为存储库唯一包含的是网站。这样我就必须gitcheckoutgh-pages,然后gitmergemaster,然后gitpushorigingh-pages。有什么简单的方法可以摆脱gh-pages分支并直接从master推送? 最佳答案 Theproblemis,Idon'treallyneedthemasterbranch,astheonlythingtherepositorycontainsisthewebsite.Isthere
我试图通过点击一个链接获得一个带有ISO-8859-1编码的页面,所以代码类似于这样:page_result=page.link_with(:text=>'link_text').click到目前为止,我得到的结果编码错误,所以我看到的字符如下:'T�tulo:'insteadof'Título:'我尝试了几种方法,包括:使用代理在第一个请求中声明编码:@page_search=@agent.get(:url=>'http://www.server.com',:headers=>{'Accept-Charset'=>'ISO-8859-1'})说明页面本身的编码page_result.