【问题标题】:ODRefreshControl isn´t working anymoreODRefreshControl 不再工作
【发布时间】:2013-09-12 18:09:46
【问题描述】:

我在 iOS 7 上测试了我的应用,发现我的“下拉刷新”(ODRefreshControl https://github.com/Sephiroth87/ODRefreshControl) 不再工作了。

我必须将滚动视图拉到极远才能看到微调器和箭头图标的一小部分。可能是什么问题呢。在 iOS 5 和 iOS 6 上完美运行!!

【问题讨论】:

  • 嘿,不久前遇到了同样的问题。纵观实现,我刚刚注意到 frame 属性是手动计算的。所以在我的情况下,这实际上是一个 4 英寸的显示问题,我通过 y 调整修复了它。
  • 嘿,谢谢你的提示,我以类似的方式解决了这个问题。我的问题是 iOS 7 中的状态和导航栏。我还更改了 y 调整 :)
  • 您是否有示例代码显示您修复它的位置?

标签: ios ios7 pull-to-refresh uirefreshcontrol


【解决方案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;
}

【讨论】:

    猜你喜欢
    • 2013-03-16
    • 2012-04-11
    • 2018-06-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多