2013-10-09 5 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, вам нужно добавить ограничение в ячейку таблицы. Также вы должны установить флаг TranslatesAutoresizeMaskIntoConstraints в значение 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

Смежные вопросы