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 不再工作的主要内容,如果未能解决你的问题,请参考以下文章

侵入式单链表的简单实现(cont)

在Linux上创建webrev(cont)[基于svn]

活动排序工具之双代号网络(AOA)与单代号网络(AON)[cont.]

iOS ODRefreshControll 拉取长度

MassTransit:发布者不再工作。为啥?

为啥 Heroku-accounts 插件不再工作,并且我不再能够在 CLI 中的多个帐户之间切换?