Spe*_*pgh 5 uiscrollview uiscrollviewdelegate ios6
我正在向我的应用添加一个虚拟ScrollView,以检测用户在状态栏上的点击,在我的程序中执行一个事件..我在ViewDidLoad中创建它:
//Dummy Scroll is for the tap on status bar to work 
UIScrollView *dummyScrollView = [[UIScrollView alloc] init]; 
dummyScrollView.delegate = self; 
[[self view ] addSubview:dummyScrollView]; 
[[self view] sendSubviewToBack:dummyScrollView];  
Run Code Online (Sandbox Code Playgroud)
然后我实施:
 - (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView 
 { 
NSLog(@"scrollViewShouldScrollToTop");
 .
 .
 }
Run Code Online (Sandbox Code Playgroud)
在所有以前版本的IOS中,这种工作非常漂亮且完美无缺,但在iOS 6下,scrollViewShouldScrollToTop永远不会被调用.这是一个错误?API说它仍然可以作为iOS6中委托的一部分使用,但在设备和模拟器上的iOS6下它永远不会执行......任何人都知道发生了什么?
仍然没有其他TableView或ScrollView,但有一个MAPVIEW ?? 但是MapView没有我可以找到设置为NO的shouldScrollToTop ..所以我仍然无法理解为什么它在iOS 6下停止工作...
您正在创建的UIScrollView是否有可能是视图层次结构中唯一的UIScrollView?在iOS6中看起来如果在视图层次结构中有多个UIScrollView,则只有一个应该具有scrollsToTop = YES.这是将调用其scrollViewShouldScrollToTop方法的方法.
我的问题类似于我有一个非常基本的UITableView,当状态栏被点击时它不再自动滚动到顶部.我终于记得我的tableView中的一个单元格使用了一个UIWebView,并且单元格webView.scrollView(正确地,现在在iOS6中)劫持了对scrollViewShouldScrollToTop的调用,在iOS6之前,我在tableView上进行了调用.
设置tableViewCell的"scrollsToTop = NO"后,状态栏自动滚动再次像以前一样工作.这里或多或少是代码的样子:
myCustomCellWithAWebView.webView.scrollView.scrollsToTop = NO;
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助!
小智 0
在iOS 6上,只需点击状态栏scrollview上方的部分即可触发scrollsToTop事件。
并且,该scrollView 无法隐藏或0 alpha。
但可以覆盖。或清晰的背景颜色。
所以在 iOS 6 上,你需要
dummyScrollView.frame = self.view.bounds;
dummyScrollView.backgroundColor = [UIColor clearColor];  
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2435 次  |  
        
|   最近记录:  |