在MonoTouch对话框中定位Section HeaderView元素

时间:2013-03-19 20:14:26

标签: xamarin.ios monotouch.dialog

我正在尝试在MonoTouch对话框中的Section元素标题中自定义文本的位置。我读到你应该如何创建自己的UILabel来创建样式文本,然后将其分配给Section对象的HeaderView。那部分效果很好。

我现在面临的问题是:如何获得与默认无样式的Section元素中使用的偏移类似的文本偏移量(请参阅附加图像中的比较)。无论我做什么,我似乎无法找到让“Styled Section”文本从屏幕左边移开的方法。我尝试更改RectangleF声明中指定的x坐标,但是在呈现视图时,我指定的任何内容都会被忽略。

以下是屏幕截图的支持代码:

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);

enter image description here

2 个答案:

答案 0 :(得分:5)

将labelHeader添加到UIView中,然后将UILabel的x坐标设置为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);

结果:

enter image description here

答案 1 :(得分:0)

没有阅读有关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));