相关疑难解决方法(0)

iOS 8.4:滚动视图会在视图出现后不久重置 contentOffset 并启用 Voice Over

启用 Voice Over 后,滚动视图会在视图出现后一秒重置它们的预设 contentOffset。它发生在 iOS 8.4 设备上,9.0 无法重现。看起来一些内部UIScrollViewAccessibility代码setContent:在聚焦时强制滚动视图为零。没有找到任何方法来逃避这一点。

有什么想法吗?

相关代码示例说明了该错误。只需创建一个带有集合视图的视图,创建一个重用 id 为“Cell”的单元格并在其上放置一个标签。

@interface ViewController () <UICollectionViewDataSource, UICollectionViewDelegate, UICollectionViewDelegateFlowLayout>
@property (nonatomic, weak) IBOutlet UICollectionView *collectionView;
@end
@implementation ViewController
- (void)viewDidLoad {
    [super viewDidLoad];
    self.collectionView.backgroundColor = [UIColor clearColor];
}
- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [self.collectionView reloadData];
    //set there 4 seconds and bug will disappear
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
        [self.collectionView scrollToItemAtIndexPath:[NSIndexPath indexPathForItem:5 inSection:0] atScrollPosition:UICollectionViewScrollPositionCenteredHorizontally animated:NO];
    });
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    NSLog(@"Why you scroll second time?"); …
Run Code Online (Sandbox Code Playgroud)

accessibility scrollview ios voiceover contentoffset

5
推荐指数
1
解决办法
1127
查看次数