嗨,我正在努力使我的垂直UIStackView在scrollview中滚动。
我在情节提要中的设计器中添加了一个堆栈视图,并在ViewDidLoad方法中添加了以下代码。
var scrollView = new UIScrollView(new RectangleF(0, 0, (float)View.Frame.Width, (float)(View.Frame.Height - this.NavigationController.NavigationBar.Frame.Height)));
scrollView.Add(ReallocateStackView);
ReallocateStackView.LeadingAnchor.ConstraintEqualTo(scrollView.LeadingAnchor).Active = true;
ReallocateStackView.TrailingAnchor.ConstraintEqualTo(scrollView.TrailingAnchor).Active = true;
ReallocateStackView.TopAnchor.ConstraintEqualTo(scrollView.TopAnchor).Active = true;
ReallocateStackView.BottomAnchor.ConstraintEqualTo(scrollView.BottomAnchor).Active = true;
ReallocateStackView.WidthAnchor.ConstraintEqualTo(scrollView.WidthAnchor);
scrollView.ContentSize = ReallocateStackView.IntrinsicContentSize;
View.Add(scrollView);
scrollView.TranslatesAutoresizingMaskIntoConstraints = false;
scrollView.LeadingAnchor.ConstraintEqualTo(View.LeadingAnchor).Active = true;
scrollView.TrailingAnchor.ConstraintEqualTo(View.TrailingAnchor).Active = true;
scrollView.TopAnchor.ConstraintEqualTo(View.TopAnchor).Active = true;
scrollView.BottomAnchor.ConstraintEqualTo(View.BottomAnchor).Active = true;
scrollView.CenterXAnchor.ConstraintEqualTo(View.CenterXAnchor).Active = true;
scrollView.CenterYAnchor.ConstraintEqualTo(View.CenterYAnchor).Active = true;
我得到的结果是在纵向模式下存在一个水平滚动,因此我可以看到我的全部内容。当我在横向模式下旋转设备时,垂直滚动看起来很好,但是我在stackview中的内容没有扩展到屏幕的右侧。 已经尝试了所有关于stackoverflow的解决方案,但是似乎没有一个起作用。许多解决方案说,关键点是scrollview的宽度应该与stackview的宽度匹配,我希望我下面的代码行可以做到
ReallocateStackView.WidthAnchor.ConstraintEqualTo(scrollView.WidthAnchor);
不确定我在做什么错吗,请有人帮忙。