我试图通过继承Mvvmcross Dialog实现中的一些元素来轻松定制。
颜色和字体设置得很好,但是如果我尝试设置文本标签框架(在本例中为100 X ......)我就无法坚持下去。
有人能指出我在这里出错的方向吗?在几个不同的地方尝试过。
public class MyBooleanElement : BooleanElement {
public MyBooleanElement (string caption) : base(caption, false)
{
}
protected override UISwitch CreateSwitch()
{
UISwitch s = base.CreateSwitch();
s.BackgroundColor = UIColor.Clear;
s.Opaque = false;
s.Layer.Opacity = 0.25f;
return s;
}
protected override UITableViewCell GetCellImpl(UITableView tv)
{
var cell = base.GetCellImpl(tv);
if (cell.BackgroundColor != UIColor.Clear) {
cell.BackgroundColor = UIColor.Clear;
cell.TextLabel.Font = Theme.GetContentFont();
cell.TextLabel.TextColor = UIColor.White;
cell.TextLabel.Frame = new RectangleF(100, 0, 320, 20); // this is not holding, resets to 15
cell.ContentView.Frame = new RectangleF(50, cell.ContentView.Frame.Top, cell.ContentView.Frame.Width, cell.ContentView.Frame.Height); // try this also?
}
return cell;
}
protected override void UpdateCaptionDisplay(UITableViewCell cell)
{
base.UpdateCaptionDisplay(cell);
if (cell != null) {
cell.TextLabel.Frame = new RectangleF(100, 0, 320, 20); // this is not holding, resets to 15
cell.TextLabel.BackgroundColor = UIColor.Blue; // Yet this works? some constraints somewhere cannot see in source!
}
}
}
答案 0 :(得分:0)
框架的对话框部分是为您定位标题(标签)和控件。
您应该稍微查看源代码,或者尝试了解它的工作原理。
您可以从断点开始并在调试时单步执行源代码。我确定你会看到15值的设定位置。
对不起,我无法给你一个确切的答案。我自己在iPad上对话元素的错误定位时遇到了一些问题,我不得不挖掘一下。