HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iphone – UITableView在reloadData之后自动向下滚动大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我的桌面视图在我的iPad应用程序(OS X 10.7.3,Xcode 4.3.2)中自动向下滚动,并且不确定在哪里查找原因.情况如下:

UITableView填满整个屏幕,大多数单元格都是固定高度的单元格.一个例外是包含UITextView的单元格,并且具有动态高度(换句话说,单元格的高度会调整以适应文本的数量).

如果表格恰好在表格视图位于顶部时切断了动态高度单元格,则问题就会出现.首次加载视图时,表格将正常绘制,只有部分UITextView单元格可见.但是,如果我显示一个UIPopoverController,我需要在解除弹出窗口后执行reloadData,当我这样做时,表视图将向下滚动,足以显示所有UITextView. (不是包含UITextView的单元格,只有UITextView.该表是一个分组表,UITextView单元格是该部分中唯一的单元格,因此在此幻像滚动后仍然看不到圆形底边.)

我在我的应用程序中看不到滚动表视图或设置内容偏移的任何代码,所以我完全不知道是什么导致了这一点.

为了尝试缩小它,我设置了我的视图以尊重UIScrollViewDelegate,如果我在scrollViewDidScroll:方法中放置一个断点,程序确实在弹出窗口消失后停止并给我以下回溯:

(lldb) bt
* thread #1: tid = 0x1f03,0x0005245f MyApp`-[ContactDisplayViewController scrollViewDidScroll:] + 31 at ContactDisplayViewController.m:1143,stop reason = breakpoint 3.1
    frame #0: 0x0005245f MyApp`-[ContactDisplayViewController scrollViewDidScroll:] + 31 at ContactDisplayViewController.m:1143
    frame #1: 0x017e3494 UIKit`-[UIScrollView setContentOffset:] + 521
    frame #2: 0x0180804d UIKit`-[UITableView setContentOffset:] + 334
    frame #3: 0x017d495e UIKit`-[UIScrollViewScrollAnimation setProgress:] + 523
    frame #4: 0x0183d234 UIKit`-[UIAnimator(StatiC) _advance:] + 255
    frame #5: 0x02c013a3 Graphicsservices`HeartbeatTimerCallBACk + 35
    frame #6: 0x023278c3 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 19
    frame #7: 0x02328e74 CoreFoundation`__CFRunLoopDoTimer + 1220
    frame #8: 0x022852c9 CoreFoundation`__CFRunLoopRun + 1817
    frame #9: 0x02284840 CoreFoundation`CFRunLoopRunSpecific + 208
    frame #10: 0x02284761 CoreFoundation`CFRunLoopRunInMode + 97
    frame #11: 0x02bfe1c4 Graphicsservices`GSEventRunModal + 217
    frame #12: 0x02bfe289 Graphicsservices`GSEventRun + 115
    frame #13: 0x017a4c93 UIKit`UIApplicationMain + 1160
    frame #14: 0x0000263d MyApp`main + 125 at main.m:14

如果我在该方法中打印出scrollView,它会显示UITableView处于运动状态(不确定contentOffset的来源):

PrinTing description of scrollView:
<UITableView: 0xc3ed400; frame = (0 99; 383 817); clipsToBounds = YES; 
autoresize = W+RM+H; layer = <CALayer: 0x7bf1a40>; contentOffset: {0,14}>

这个幻像滚动显示在设备和模拟器上,以及iOS 4.3,5.0和5.1中.有没有人有任何想法?

解决方法

我之前有一种模糊的回忆.由于 UITableViewsUIScrollView的子类,所以 UITextViews也是如此,它可以搞得一团糟.

猜测也许尝试在重新加载之前更改TextView上的一些属性,例如禁用滚动?

[myTextView setScrollEnabled:NO];

大佬总结

以上是大佬教程为你收集整理的iphone – UITableView在reloadData之后自动向下滚动全部内容,希望文章能够帮你解决iphone – UITableView在reloadData之后自动向下滚动所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。