ios - xamarin Ios 将 UIView 添加到 ContainerView

标签 ios xamarin constraints syncfusion sfcalendar

我需要帮助对齐 ContainerView 中的 subview 。我试图添加约束,但它搞砸了一切,所以我尝试了 FluentLayout (https://github.com/FluentLayout/Cirrious.FluentLayout)

我的代码如下所示:

public override void ViewDidLoad()
        {

            SFCalendar calendar = new SFCalendar();
            containerView.AddSubview(calendar);

            containerView.AtBottomOf(this.View);
            containerView.AtTopOf(this.View);
            containerView.WithSameWidth(this.View);

            calendar.AtBottomOf(containerView);
            calendar.AtTopOf(containerView);
            calendar.WithSameWidth(containerView);
        }

但最后我的日历被切断了一点,我在这里做错了什么?

enter image description here
enter image description here

最佳答案

在使用自动布局之前,您应该禁用 TranslatesAutoresizingMaskIntoConstraints .因此,将这两个控件属性设置为 False 会产生影响,此外,您应该更正您的用法:

containerView.TranslatesAutoresizingMaskIntoConstraints = false;

SFCalendar calendar = new SFCalendar();
containerView.AddSubview(calendar);

calendar.TranslatesAutoresizingMaskIntoConstraints = false;

View.AddConstraints(containerView.AtBottomOf(this.View),
containerView.AtTopOf(this.View),
containerView.WithSameWidth(this.View));


containerView.AddConstraints(calendar.AtBottomOf(containerView),
calendar.AtTopOf(containerView),
calendar.WithSameWidth(containerView));

但我建议您使用 native 约束来执行此操作,而且您似乎也想这样做 containerView全屏。添加其前导、尾随、顶部、底部会更好:
SFCalendar calendar = new SFCalendar();
containerView.AddSubview(calendar);

containerView.TranslatesAutoresizingMaskIntoConstraints = false;
containerView.LeadingAnchor.ConstraintEqualTo(View.LeadingAnchor).Active = true;
containerView.TopAnchor.ConstraintEqualTo(TopLayoutGuide.GetBottomAnchor()).Active = true;
containerView.TrailingAnchor.ConstraintEqualTo(View.TrailingAnchor).Active = true;
containerView.BottomAnchor.ConstraintEqualTo(BottomLayoutGuide.GetTopAnchor()).Active = true;

calendar.TranslatesAutoresizingMaskIntoConstraints = false;
calendar.LeadingAnchor.ConstraintEqualTo(containerView.LeadingAnchor).Active = true;
calendar.TopAnchor.ConstraintEqualTo(containerView.TopAnchor).Active = true;
calendar.TrailingAnchor.ConstraintEqualTo(containerView.TrailingAnchor).Active = true;
calendar.BottomAnchor.ConstraintEqualTo(containerView.BottomAnchor).Active = true;

关于ios - xamarin Ios 将 UIView 添加到 ContainerView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49478829/

相关文章:

iphone - 我怎样才能为我的 Web 应用程序提供一个普通的 iPhone 主屏幕图标和一个 Retina 显示图标?

ios - 未调用 Twilio 聊天上用于键入指示器的委托(delegate)方法

android - 如何在 xamarin android 中隐藏导航栏?

android - "Link Assemblies"任务意外失败问题,而应用程序在 Release模式 Xamarin Android 中构建

Swift image Aspect Fill 高图像不起作用

Objective-c 动态加载更多 UITableViewCell

ios - 来自 iOS 的 PayPal 错误 580001 HTTP 请求

c# - 如何在 ios 11 中保存到照片相册崩溃?

ios - 水平约束在 UIScrollView 中无法正常工作。 (程序约束)

r - R 中的约束优化