我正在尝试在我的项目中的 UICollectionView 上实现 UIRefreshControl。它按预期工作,但我需要在旋转时将 UICollectionView 拉到 refreshControl 高度的大约 3 倍(一旦用户松开)。我见过其他应用程序,您只需要在旋转时下拉到 refreshControl 的高度。如何更改我需要下拉的数量?
代码:
(void)viewDidLoad {
[super viewDidLoad];
[self.collectionView setBackgroundColor:[UIColor clearColor]];
self.refreshControl = [UIRefreshControl new];
[self.refreshControl addTarget:self action:@selector(refreshFavorites) forControlEvents:UIControlEventValueChanged];
[self.collectionView addSubview:self.refreshControl];
self.collectionView.alwaysBounceVertical = YES;
}
附件是帮助形象化我的意思的图片。我的 collectionView 有一行(纯红色)。红色和 refreshControl 之间的空间就是我拉下以尝试激活 refreshControl 的空间。
在这张图片中,我几乎激活了控件,并且已经在屏幕上下拉了相当多的内容。
在这张图片中,我激活了控件并开始加载(在它跳转 ~20-30 像素后,但它仍然突出显示这是多么重要)
此图像显示控件在被激活并正在执行动画后处于“静止”状态。
我试过设置 UIRefreshControl 的框架来控制高度,但这不起作用。我还更改了 collectionView:layout:sizeForItemAtIndexPath 中的大小,但这没有帮助。
最佳答案
如果需要将 UIRefreshControl 拉得太远而无法触发,则可能是 iOS SDK 的错误。
我建议在 View Controller 的帮助下解决这个问题:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
// Force update the snapping height of refresh control.
[self.refreshControl didMoveToSuperview];
}
另外如果不介意使用私有(private)API,需要更精准的控制,可以这样写:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
@try {
[self.refreshControl setValue:@(60) forKey:@"_snappingHeight"];
}
@catch (NSException *exception) {
}
}
这适用于 iOS 7-10。没有 App Store 审核问题。
往里看
UIRefreshControl 有一个名为 snappingHeight 的属性。此属性控制用户需要下拉的距离。但不幸的是,这个值并不总是正确设置,尤其是你有一个自定义 View 层次结构。
UIRefreshControl有一个私有(private)方法调用_updateSnappingHeight,这个方法也在didMoveToSuperview中调用。因此,手动 didMoveToSuperview 调用可能会更新错误的捕捉值。
关于ios - UIRefreshControl 需要下拉太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28886365/
当我使用Bundler时,是否需要在我的Gemfile中将其列为依赖项?毕竟,我的代码中有些地方需要它。例如,当我进行Bundler设置时:require"bundler/setup" 最佳答案 没有。您可以尝试,但首先您必须用鞋带将自己抬离地面。 关于ruby-我需要将Bundler本身添加到Gemfile中吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/4758609/
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121
这里有一个很好的答案解释了如何在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”结果的
这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rubysyntaxquestion:Rational(a,b)andRational.new!(a,b)我正在阅读ruby镐书,我对创建有理数的语法感到困惑。Rational(3,4)*Rational(1,2)产生=>3/8为什么Rational不需要new方法(我还注意到例如我可以在没有new方法的情况下创建字符串)?
1.错误信息:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)或者:Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:TLShandshaketimeout2.报错原因:docker使用的镜像网址默认为国外,下载容易超时,需要修改成国内镜像地址(首先阿里
我需要用任何语言编写一个算法,根据3个因素对数组进行排序。我以度假村为例(如Hipmunk)。假设我想去度假。我想要最便宜的地方、最好的评论和最多的景点。但是,显然我找不到在所有3个中都排名第一的方法。Example(assumingthereare20importantattractions):ResortA:$150/night...98/100infavorablereviews...18of20attractionsResortB:$99/night...85/100infavorablereviews...12of20attractionsResortC:$120/night
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上
修改(澄清问题)我已经花了几天时间试图弄清楚如何从Facebook游戏中抓取特定信息;但是,我遇到了一堵又一堵砖墙。据我所知,主要问题如下。我可以使用Chrome的检查元素工具手动查找我需要的html-它似乎位于iframe中。但是,当我尝试抓取该iframe时,它是空的(属性除外):如果我使用浏览器的“查看页面源代码”工具,这与我看到的输出相同。我不明白为什么我看不到iframe中的数据。答案不是它是由AJAX之后添加的。(我知道这既是因为“查看页面源代码”可以读取Ajax添加的数据,也是因为我有b/c我一直等到我可以看到数据页面之后才抓取它,但它仍然不存在)。发生这种情况是因为