我有兩個UIWebView
在一個單一的ViewController
爲了預加載一個在後臺的「下一頁」。UIWebView不會不會在iOS 7上「滾動到頂部」?
由於在Xcode 5中打開項目,當狀態欄被點擊時,它們不再滾動到頂部。
該應用程序在iOS 7中工作正常,所以我不知道什麼是錯的。當其中一個UIWebView
隱藏時,我也setScrollsToTop:NO
...所以很明顯我缺少的東西。
任何想法?
我有兩個UIWebView
在一個單一的ViewController
爲了預加載一個在後臺的「下一頁」。UIWebView不會不會在iOS 7上「滾動到頂部」?
由於在Xcode 5中打開項目,當狀態欄被點擊時,它們不再滾動到頂部。
該應用程序在iOS 7中工作正常,所以我不知道什麼是錯的。當其中一個UIWebView
隱藏時,我也setScrollsToTop:NO
...所以很明顯我缺少的東西。
任何想法?
我已經爲這個特定問題寫了一個簡單的類。在我的應用程序中,我們有多個網頁瀏覽和滾動視圖。這使得這一切變得更容易。
嗯,有趣。 –
我真誠地發現的解決方案只是聽取頂部20像素的「點按」區域,並將具有「滾動」功能的任何東西滾動到頂部,動畫設置爲YES。它不漂亮,但它的工作原理。 - 下次遇到此問題時,我會檢查一下您的解決方案。 –
這是一個有趣的方法:) – hfossli
使用該類別:
的UIView + LogViewHierarchy.h
#import <UIKit/UIKit.h>
@interface UIView (LogViewHierarchy)
-(void) logViewHierarchy;
@end
的UIView + LogViewHierarchy.m
#import "UIView+LogViewHierarchy.h"
@implementation UIView (LogViewHierarchy)
-(void) logViewHierarchy
{
NSLog(@"%@%@", NSStringFromClass(self.class), NSStringFromCGRect(self.frame));
[self logSubviews:self depth:1];
}
-(void) logSubviews:(UIView*)view depth:(NSInteger)depth
{
for (UIView *subview in view.subviews) {
if ([subview isKindOfClass:[UIScrollView class]]) {
NSLog(@"%@%@%@ - scrollsToTop: %@", [self paddingString:depth], NSStringFromClass(subview.class), NSStringFromCGRect(subview.frame), ((UIScrollView*)subview).scrollsToTop ? @"YES" : @"NO");
} else {
NSLog(@"%@%@%@", [self paddingString:depth], NSStringFromClass(subview.class), NSStringFromCGRect(subview.frame));
}
[self logSubviews:subview depth:depth+1];
}
}
-(NSString*) paddingString:(NSInteger)depth
{
return [@"" stringByPaddingToLength:depth*2 withString:@" " startingAtIndex:0];
}
@end
然後找到你的應用程序的根視圖控制器,並添加:
-(void) viewDidAppear:(BOOL)animated
{
[self.view logViewHierarchy];
}
您將可以看到所有UIScrollViews及其scrollsToTop
性能。當你設法讓你的輸出看起來像只有1個UIScrollView,它有scrollsToTop == YES
,那麼你的手勢應該可以正常工作。
就我而言,logViewHierarchy
報告你所有的滾動視圖都有scrollsToTop = NO
,你不知道爲什麼,因爲我明確地將它們設置爲YES
。 原來,我在我的項目中留下了this UIScrollView category,並且它在我所有的UIScrollViews上重載了一些方法。當我從我的項目中刪除該類別時,我能夠從logViewHierarchy
獲得正確的輸出。然後我玩弄了代碼,直到我只能得到一個scrollsToTop = YES
。
在這裏發佈您的代碼 –
它只是界面生成器..... –