旋转时 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 中的活动指示器在加载内容后保持旋转并且不停止或消失

在 UIScrollView 上放大时 UIButton 边框消失

键盘消失时,UIScrollView 不会向下滚动到其原始位置