ODRefreshControl 不再工作
Posted
技术标签:
【中文标题】ODRefreshControl 不再工作【英文标题】:ODRefreshControl isn´t working anymore 【发布时间】:2013-09-12 18:09:46 【问题描述】:我在 ios 7 上测试了我的应用,发现我的“下拉刷新”(ODRefreshControl https://github.com/Sephiroth87/ODRefreshControl) 不再工作了。
我必须将滚动视图拉到极远才能看到微调器和箭头图标的一小部分。可能是什么问题呢。在 iOS 5 和 iOS 6 上完美运行!!
【问题讨论】:
嘿,不久前遇到了同样的问题。纵观实现,我刚刚注意到 frame 属性是手动计算的。所以在我的情况下,这实际上是一个 4 英寸的显示问题,我通过 y 调整修复了它。 嘿,谢谢你的提示,我以类似的方式解决了这个问题。我的问题是 iOS 7 中的状态和导航栏。我还更改了 y 调整 :) 您是否有示例代码显示您修复它的位置? 【参考方案1】:我在 ODRefreshControl.m 中只添加了一个值来解决 iOS7 的问题。可能每个应用的价值有点不同!
之前:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
if ([keyPath isEqualToString:@"contentInset"])
if (!_ignoreInset)
self.originalContentInset = [[change objectForKey:@"new"] UIEdgeInsetsValue];
self.frame = CGRectMake(0, -(kTotalViewHeight + self.scrollView.contentInset.top), self.scrollView.frame.size.width, kTotalViewHeight);
return;
之后:
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change: (NSDictionary *)change context:(void *)context
NSInteger iOS7Value = 60.0f;
if ([keyPath isEqualToString:@"contentInset"])
if (!_ignoreInset)
self.originalContentInset = [[change objectForKey:@"new"] UIEdgeInsetsValue];
if(SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"7.0"))
self.frame = CGRectMake(0, -(kTotalViewHeight + self.scrollView.contentInset.top) + iOS7Value, self.scrollView.frame.size.width, kTotalViewHeight);
else
self.frame = CGRectMake(0, -(kTotalViewHeight + self.scrollView.contentInset.top), self.scrollView.frame.size.width, kTotalViewHeight);
return;
【讨论】:
以上是关于ODRefreshControl 不再工作的主要内容,如果未能解决你的问题,请参考以下文章