Xamarin.ios中的Scrollview中的UIStackView

时间:2018-09-06 10:47:07

标签: xamarin.ios uiscrollview uistackview

嗨,我正在努力使我的垂直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);

不确定我在做什么错吗,请有人帮忙。

0 个答案:

没有答案