xamarin Ios将UIView添加到ContainerView

时间:2018-03-25 17:36:28

标签: ios xamarin constraints syncfusion sfcalendar

我需要帮助在ContainerView中对齐Subview。我试图添加约束但是它搞砸了所有内容所以我尝试了FluentLayout(https://github.com/FluentLayout/Cirrious.FluentLayout

我的代码如下:

    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart');
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );

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

enter image description here enter image description here

2 个答案:

答案 0 :(得分:1)

在使用Autolayout之前,您应该停用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));

但我建议您使用本机约束来执行此操作,您似乎也希望将此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;

答案 1 :(得分:1)

我们使用NSLayoutConstraint创建了一个示例。在此,您可以更改布局大小,但我们无法访问此中的fluentlayout。请从以下link

中找到示例