3

iOS 7 でアプリをテストしたところ、"Pull to Refresh" (ODRefreshControl https://github.com/Sephiroth87/ODRefreshControl ) が機能しなくなっていることがわかりました。

スピナーの小さな部分と矢印アイコンを表示するには、スクロールビューを非常に下に引っ張る必要があります。問題は何ですか。iOS 5 と iOS 6 では完璧に動作します!!

4

1 に答える 1

5

iOS7の問題を修正するために、 ODRefreshControl.mに値を 1 つだけ追加しました。アプリごとに価値が少し違うのかもしれません!

前:

- (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-11-13T10:11:51.977 に答える