Мой пользовательский интерфейс состоит из представления горизонтального стека, в которое встроено несколько представлений вертикального стека. Каждое представление вертикального стека состоит из значка и текстовой области размером максимум 2 строки.
У меня проблема с вертикальными представлениями стека, растягивающими значок в зависимости от текста ниже, как показано на следующем снимке экрана:
I'd like the stack views to have the icons and text areas sized properly for the entire row to get the following (Android version):
введите описание изображения здесь
Вот код:
// Create the 5 smileys (only one show here)
var val = m_currentItem.m_scoreDesciptions.val[0];
this.ico_smiley_1 = new UIImageView(UIImage.FromBundle(string.IsNullOrEmpty(val.icon) ? "ico_smiley_1.png" : "ico_" + val.icon));
this.ico_smiley_1.TintColor = string.IsNullOrEmpty(val.color) ? new UIColor(red: 1.00f, green: 0.00f, blue: 0.00f, alpha: 1.00f) : Utilities.UIColorFromAndroidHexValue(val.color);
this.text_smiley_1 = new UITextView { Text = val.name, ScrollEnabled = false, Font = FontHelpers.GenerateUIFont("Ubuntu-Light", UIFontTextStyle.Caption2), };
this.text_smiley_1.TextContainer.MaximumNumberOfLines = 3;
this.text_smiley_1.TextContainer.LineBreakMode = UILineBreakMode.WordWrap;
this.text_smiley_1.SizeToFit();
// Create the experience horizontal stackview that will hold the smiley and text couples
this.experiences = new UIStackView
{
TranslatesAutoresizingMaskIntoConstraints = false,
Axis = UILayoutConstraintAxis.Horizontal,
Distribution = UIStackViewDistribution.FillEqually,
Alignment = UIStackViewAlignment.Fill,
Spacing = 10f
};
// 1 Create the first smiley/text couple held in its own vertical stackview
this.experience_1 = new UIStackView
{
Axis = UILayoutConstraintAxis.Vertical,
Distribution = UIStackViewDistribution.FillProportionally,
Alignment = UIStackViewAlignment.Center
};
this.experience_1.AddArrangedSubview(this.ico_smiley_1);
this.experience_1.AddArrangedSubview(this.text_smiley_1);
// Add the first icon and text couple to the whole experience
this.experiences.AddArrangedSubview(this.experience_1);
Мне ясно, что сначала я должен уменьшить размер шрифта, но я не могу понять, как исправить размер смайлы и текстовые области.
Любая помощь приветствуется.
РЕДАКТИРОВАТЬ: Проблемы, решаемые:
- Установка явного размера для UIImageView
- Использование меньшего размера шрифта для UITextView