ich eine benutzerdefinierte Steuerung mit Xamarin.iOS im Anschluss an die folgende Anleitung erstellt haben: https://developer.xamarin.com/recipes/ios/general/templates/using_the_ios_view_xib_template/Xamarin.iOS individuelle Steuerung nicht Höhe Einschränkung nicht respektiert
Allerdings, wenn ich die Kontrolle verwenden in einem meiner Ansichten auf, ignoriert er die Höhe und richtige Auto-Layout-Einschränkungen, die ich zur Laufzeit zugewiesen habe, zur Design-Zeit sieht alles gut aus. (Die Einschränkungen werden mit dem Designer festgelegt).
Der Code meines Custom Controls ist wie folgt:
using Foundation;
using System.ComponentModel;
using UIKit;
using System;
using CoreGraphics;
namespace RidderCRM.iOS
{
[DesignTimeVisible(true)]
public partial class RidderDetailBigToSmall : UIView, IComponent
{
public RidderDetailBigToSmall(IntPtr handle) : base(handle)
{
}
#region IComponent implementation
public ISite Site { get; set; }
public event EventHandler Disposed;
#endregion IComponent implementation
#region Icon properties
[Export("Icon"), Browsable(true)]
public UIImage Icon { get; set; }
#endregion Icon properties
#region Title properties
[Export("Title"), Browsable(true)]
public string Title { get; set; }
[Export("TitleColor"), Browsable(true)]
public UIColor TitleColor { get; set; }
#endregion Title properties
#region Subtitle properties
[Export("Subtitle"), Browsable(true)]
public string Subtitle { get; set; }
[Export("SubtitleColor"), Browsable(true)]
public UIColor SubtitleColor { get; set; }
#endregion Subtitle properties
public override CGSize IntrinsicContentSize
{
get { return new CGSize(NoIntrinsicMetric, 56f); }
}
public new static bool RequiresConstraintBasedLayout()
{
return true;
}
public override void AwakeFromNib()
{
base.AwakeFromNib();
if ((Site != null) && Site.DesignMode)
{
// Bundle resources aren't available in DesignMode
return;
}
NSBundle.MainBundle.LoadNib("RidderDetailBigToSmall", this, null);
// At this point all of the code-behind properties should be set, specifically rootView which must be added as a subview of this view
this.AddSubview(this.RootView);
this.TitleLabel.Text = Title;
this.TitleLabel.TextColor = TitleColor;
this.SubtitleLabel.Text = Subtitle;
this.SubtitleLabel.TextColor = SubtitleColor;
this.IconImageView.Image = Icon;
}
}
}
Hier ein Screenshot der auf einem Blick zur Entwurfszeit nach und ein Screenshot der angewandten Beschränkungen (beachten Sie die Etiketten und das Symbol platziert Kontrolle nicht zeigen, aber ich lese dieses ist das erwartete Verhalten):
ist hier ein Screenshot der Ansicht meiner benutzerdefinierte Steuerelement zur Laufzeit enthält (beachten Sie, dass die Steuerung des ganzen Raum auf den Boden der Ansicht nehmen):
Jede Hilfe wäre sehr geschätzt.