Позиционирование элементов Section HeaderView в диалоговом окне MonoTouch

Я пытаюсь настроить положение текста в заголовках элементов раздела в диалоговом окне MonoTouch. Я читал о том, как вы должны создать свой собственный UILabel для создания стилизованного текста, а затем назначить его для объекта HeaderView объекта Section. Эта часть отлично работает.

Проблема, с которой я столкнулся сейчас, заключается в следующем: как я могу получить смещение текста, аналогичное смещению, используемому в нестилизованном элементе Section по умолчанию (см. сравнение на прикрепленном изображении). Кажется, я не могу найти способ убрать текст «Стилизованный раздел» от левого края экрана, что бы я ни делал. Я попытался изменить координату x, указанную в объявлении RectangleF, но все, что я указываю, не учитывается при визуализации представления.

Вот резервный код для скриншота:

Root = new RootElement ("Login2Screen");
var labelHeader = new UILabel();
labelHeader = new UILabel(new RectangleF(0, 0, 320, 48));
labelHeader.Text = "Styled 
labelHeader.TextColor = UIColor.Blue;
labelHeader.BackgroundColor = UIColor.Clear;

var styledSection = new Section(labelHeader);
styledSection.Add(new EntryElement("Username", string.Empty, string.Empty));
styledSection.Add(new EntryElement("Password", string.Empty, string.Empty));
Root.Add(styledSection);

var defaultStyleSection = new Section("Default Section");
Root.Add (defaultStyleSection);

введите здесь описание изображения


person Matthew Ruston    schedule 19.03.2013    source источник


Ответы (2)


Добавьте labelHeader в UIView, а затем установите x-координату вашего UILabel на 10.

var viewLabelHeader = new UIView(new RectangleF(0, 0, 320, 48));
var labelHeader = new UILabel(new RectangleF(10, 0, 320, 48));
labelHeader.Text = "Styled section";
labelHeader.TextColor = UIColor.Blue;
labelHeader.BackgroundColor = UIColor.Clear;
viewLabelHeader.AddSubview (labelHeader);

var styledSection = new Section(viewLabelHeader);

Результат:

введите здесь описание изображения

person Theos    schedule 22.03.2013
comment
Хорошо, что работает! Кто-нибудь может объяснить, почему это работает? - person Matthew Ruston; 24.03.2013

Ничего не читал о положении текста в элементе Section, но

labelHeader = new UILabel(new RectangleF(0, 0, 320, 48));

Вы позиционируете его на 0,0? если вы сделаете его 10,0, он должен двигаться. то есть переместите позицию x на 10

labelHeader = new UILabel(new RectangleF(10, 0, 320, 48));
person Casper Skoubo    schedule 19.03.2013
comment
Я пробовал это. Кажется, что координата x игнорируется при установке в RectangleF во всех моих тестах. - person Matthew Ruston; 20.03.2013