Ios UITabBarController中古怪的界面错误UIScrollView。可被他人复制?
我的UIScrollView出现了一个奇怪的界面错误,我不知道如何解决它我只写了一行代码(如下所示),这是一个空白项目的设置,易于复制 设置: 我有一个Ios UITabBarController中古怪的界面错误UIScrollView。可被他人复制?,ios,objective-c,uiscrollview,uisegmentedcontrol,Ios,Objective C,Uiscrollview,Uisegmentedcontrol,我的UIScrollView出现了一个奇怪的界面错误,我不知道如何解决它我只写了一行代码(如下所示),这是一个空白项目的设置,易于复制 设置: 我有一个UIScrollView,其中包含一个UISegmentedControl(因为 控件是动态加载的,它可能超过屏幕的宽度,scrollView应该水平滚动segmentedControl,scrollView的高度与UISegmentedControl相同)。 包含该错误的ViewController嵌入在选项卡栏(或导航栏,也显示该错误)中。整
UIScrollView
,其中包含一个UISegmentedControl
(因为
控件是动态加载的,它可能超过屏幕的宽度,scrollView应该水平滚动segmentedControl,scrollView的高度与UISegmentedControl相同)。
包含该错误的ViewController嵌入在选项卡栏(或导航栏,也显示该错误)中。整个过程就是使用自动布局
错误:
当我将SegmentedControl向右滚动一定程度,然后通过单击tabBarController上的另一个选项卡来切换viewController时,当切换回初始viewController时,分段控件的内容偏移会发生奇怪的移动。当我尝试滚动到scrollview的最左边时,它不允许我。当切换选项卡几次时,它会再次得到修复,我可以重新进行
我所做的(你能复制这个吗?):
[self.segmentedControl insertSegmentWithTitle:@"A really long title so it you have to scroll to see it" atIndex: 0 animated: NO];
是否不再需要设置scrollViews contentSize属性?为什么它会自动滚动内容?谷歌搜索之后,我在另一个问题中找到了答案 您需要做的是保存
滚动视图。视图上的contentOffset
将消失
,
在viewdiddemouse
上将其设置为CGPointZero
,并在viewDidLayoutSubviews
上将其设置回保存状态:
-(void) viewWillDisappear: (BOOL) animated {
self.lastContentOffset = self.scrollView.contentOffset;
[super viewWillDisappear: animated];
}
-(void) viewDidDisappear:(BOOL)animated {
[super viewDidDisappear: animated];
self.scrollView.contentOffset = CGPointZero;
}
- (void)viewDidLayoutSubviews {
[super viewDidlayoutSubviews];
self.scrollView.contentOffset = self.lastContentOffset;
}
如果有人尝试了它,并得到相同的错误,请留下评论,让我知道我不是疯子-即使你没有修复。你不是疯子。我也有同样的行为,但我不知道它为什么这样做。