2013-10-09 201 views
0

我在桌面视图中以编程方式添加了UITextView。我想为它添加约束,所以它在纵向和横向模式下看起来都是一样的。我有以下代码(C#,MonoTouch),但它不工作。 titleTxt是添加到单元格中的简单文本字段。MonoTouch以编程方式向UITextField添加约束条件

var rightSpaceConstraint = NSLayoutConstraint.Create (titleTxt, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, null, NSLayoutAttribute.Right, 1.0f, 20f); 
var leftSpaceConstraint = NSLayoutConstraint.Create (titleTxt, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, null, NSLayoutAttribute.Left, 1.0f, 20f); 

titleTxt.AddConstraints (new NSLayoutConstraint[] {rightSpaceConstraint, leftSpaceConstraint}); 

我应该如何添加约束来设置左右空格。

回答

1

而不是添加约束到titleTxt你必须添加约束表格单元格。您还必须将TranslatesAutoresizingMaskIntoConstraints标志设置为false。 下面是工作正常的代码

 UILabel titleLbl = new UILabel(); 
     titleLbl.Frame = new RectangleF (20,5,260,30); 
     titleLbl.Text = "Please enter username"; 
     titleLbl.BackgroundColor = UIColor.Clear; 
     titleLbl.Font = UIFont.SystemFontOfSize (13); 
     titleLbl.TextAlignment = UITextAlignment.Center; 

     titleLbl.AutoresizingMask = UIViewAutoresizing.FlexibleWidth; 
     titleLbl.TranslatesAutoresizingMaskIntoConstraints = false; 

     cell.ContentView.AddSubview (titleLbl); 

     var titleLblRightSpaceConstraint = NSLayoutConstraint.Create (titleLbl, NSLayoutAttribute.Trailing, NSLayoutRelation.Equal, cell.ContentView, NSLayoutAttribute.Right, 1.0f, -20f); 
     var titleLblLeftSpaceConstraint = NSLayoutConstraint.Create (titleLbl, NSLayoutAttribute.Leading, NSLayoutRelation.Equal, cell.ContentView, NSLayoutAttribute.Left, 1.0f, 0f); 

     cell.ContentView.AddConstraints (new NSLayoutConstraint[] {titleLblRightSpaceConstraint, titleLblLeftSpaceConstraint }); 
+0

如果我们使用自动布局和约束,我们是否真的需要给框架? – SARATH

相关问题