Использование Xamarin iOS для создания моего представления с кодом C# (без конструктора), как я могу создать различные ограничения для разных классов размера?Как использовать код для установки различных ограничений для автоматического макета с помощью Xamarin iOS
Пока что мне удалось создать ограничения только с использованием кода, и он отлично работает, но это тот же набор ограничений для всех размеров/ориентаций.
Этот код создает два пользовательских вида и устанавливает их, чтобы заполнить экран слева направо и найти их один под другим. Это отлично подходит для iPhone 6+ в портретном режиме, но в ландшафтном режиме я хочу, чтобы он скрывал второй вид (SomePanel) и растягивал первый вид (MainPanel) по всему экрану.
partial class SomeView : MvxViewController
{
CustomView MainPanel;
CustomView SomePanel;
public SomeView (IntPtr handle) : base (handle)
{
}
public override void ViewDidLoad()
{
base.ViewDidLoad();
/// First Panel
MainPanel = CustomView.Create();
View.AddSubview (MainPanel);
MainPanel.TranslatesAutoresizingMaskIntoConstraints = false;
/// Second Panel
SomePanel = CustomView.Create();
View.AddSubview (SomePanel);
SomePanel.TranslatesAutoresizingMaskIntoConstraints = false;
/// <summary>
/// First set of constraints - two panels one under the other
/// </summary>
View.AddConstraint (NSLayoutConstraint.Create (MainPanel, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1f, 0f));
View.AddConstraint (NSLayoutConstraint.Create (MainPanel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, View, NSLayoutAttribute.Top, 1f, 50f));
View.AddConstraint (NSLayoutConstraint.Create (MainPanel, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1f, 60f));
View.AddConstraint (NSLayoutConstraint.Create (MainPanel, NSLayoutAttribute.Width, NSLayoutRelation.Equal, 1f, View.Bounds.Width - 40));
View.AddConstraint (NSLayoutConstraint.Create (SomePanel, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1f, 0f));
View.AddConstraint (NSLayoutConstraint.Create (SomePanel, NSLayoutAttribute.Top, NSLayoutRelation.Equal, MainPanel, NSLayoutAttribute.Bottom, 1f, 20f));
View.AddConstraint (NSLayoutConstraint.Create (SomePanel, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1f, 60f));
View.AddConstraint (NSLayoutConstraint.Create (SomePanel, NSLayoutAttribute.Width, NSLayoutRelation.Equal, 1f, View.Bounds.Width - 40));
}
}
Я знаю, что это легко сделать с помощью конструктора, установить ограничения, изменить классы размера с помощью дизайнера и редактирования ограничений, опять-таки из конструктора.
Но в моем случае я хочу сделать это с помощью кода, и я не могу найти руководство или примеры того, как устанавливать различные ограничения для разных классов/разных ориентаций.
Любая помощь приветствуется.
существует метод можно переопределить, что пожары, когда ориентация изменяется, там вы шо uld задайте свой вид. – PmanAce