旋转时 UIScrollView 的指示器消失
Posted
技术标签:
【中文标题】旋转时 UIScrollView 的指示器消失【英文标题】:Disappearing UIScrollView's indicator when rotating 【发布时间】:2012-03-07 15:45:10 【问题描述】:滚动视图有两个问题。
(1) 当我的滚动视图旋转时,滚动视图的指示器消失了。 我在旋转时调用 setFrame、setContentSize 和 setContentOffset。 滚动视图上有很多子视图,因此内容大小不小。 我所有的表格视图在旋转时都很好。
(2) 我的应用程序可以恢复用户的阅读位置。 所以我将滚动视图的 contentOffset 存储为 CGPoint。 如果我调用 setContentOffset 来恢复 contentOffset,滚动视图的指示器就会消失。 但是当视图出现时,如果 contentOffset 值设置为 (0.0, 0.0),则滚动视图的指示器不会消失。 我尝试使用scrollRectToVisible:animated:,结果是一样的。
我今天在这些问题上花了 10 多个小时。请帮帮我吧。
//创建部分
UIScrollView *scrollViewBoard = [ [ UIScrollView alloc ] initWithFrame: CGRectZero ];
[ scrollViewBoard setShowsHorizontalScrollIndicator: NO ];
[ scrollViewBoard setAlwaysBounceVertical: YES ];
[ scrollViewBoard setDelegate: self ];
[ self addSubview: scrollViewBoard ];
_board = scrollViewBoard;
[ scrollViewBoard release ];
//旋转部分
- ( void ) adjustLayout: ( UIInterfaceOrientation )anOrientation
MyTrackLog();
switch ( anOrientation )
case UIInterfaceOrientationPortrait:
case UIInterfaceOrientationPortraitUpsideDown:
[ _board setFrame: RECT_PORTRAIT_BOARD ];
break;
case UIInterfaceOrientationLandscapeLeft:
case UIInterfaceOrientationLandscapeRight:
[ _board setFrame: RECT_LANDSCAPE_BOARD ];
break;
default:
break;
[ _board setContentSize: [ self calculateContentSize: anOrientation ] ];
[ _board setContentOffset: _contentOffset ];
[ self arrangeAchievementButtons: anOrientation ];
// 调整布局:
谢谢。
【问题讨论】:
【参考方案1】:也许UIScrollView
会扩展显示。您可以尝试:UIScrollView
的superview 应该将autoResizeSubViews
设置为YES
。而UIScrollView
应该将autoResizingMask
设置为UIViewAutoResizingFlexibleWidth | UIViewAutoResizingFlexibleHeight
。
不要在方向改变后使用setFrame
调整大小
【讨论】:
【参考方案2】:[_board flashScrollIndicators];
在你改变方向之后。
【讨论】:
以上是关于旋转时 UIScrollView 的指示器消失的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式滚动时在 UIScrollView 上显示滚动指示器
在 UIScrollview Swift 中旋转 UIView
是否可以将 UIScrollView 指示器从右侧移动到左侧?
你好。我正在使用 Xcode 开发应用程序。 WKWebView 中的活动指示器在加载内容后保持旋转并且不停止或消失