当用户在屏幕上滚动时,我想逐渐在屏幕上显示导航栏。并希望将其设为alpha以隐藏导航栏(设置Alpha因为我想显示导航控制器的后箭头)。
向上滚动词语时很好。
但是,如果我将其半透明属性设置为true,则在初始位置设置scrollview时,即NavigationController.NavigationBar.Translucent = true; 然后它使用相同的导航栏高度移动内容upwords。
预期结果:滚动完成后,Scrollview应处于初始状态。
有人可以帮我这个吗?
答案 0 :(得分:0)
如果您在iOS 10上启用了AutomaticallyAdjustsScrollViewInsets
或在iOS 11上启用了ContentInsetAdjustmentBehavior
,并且您已为scrollView添加了正确的约束。滚动视图将自动调整其插图以使内容显示在NavigationBar下。
但是如果您设置NavigationController.NavigationBar.Translucent = true;
并使用MyScrollView.SetContentOffset(new CGPoint(0, 0), true);
在初始位置设置scrollview。这将导致您的问题:导航栏似乎涵盖了内容。
你可以使用另一个api使滚动视图滚动到顶部:
MyScrollView.ScrollRectToVisible(new CGRect(0, 0, 5, 5), true);
这会将滚动视图的内容放在导航栏下方。或者尝试判断Translucent
状态,如果这是真的,请使用它来取回初始位置:
MyScrollView.SetContentOffset(new CGPoint(0, -NavigationController.NavigationBar.Frame.GetMaxY()), true);