我有两个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
。
在这里发布您的代码 –
它只是界面生成器..... –