我正在做与此类似的事情,https://www.youtube.com/watch?v=EwSTK24IQds, 但是对于每个对象,我要放置一个UI文本字段。当我使用不同的设备滚动浏览每个页面时,文本不会居中显示在屏幕中间。无论设备是什么,我都该怎么做才能使对象居中放置? 用户正在填写表单并输入数据,然后滚动到每个字段的下一页。
谢谢
答案 0 :(得分:0)
原因:
文本框在不同设备中的位置,取决于文本框的布局。
解决方案:
例如,您将textField添加到ViewController的默认视图中。
无论设备是什么,我在这里提供两种方法来在视图中居中显示文本字段:
Frame
。您可以计算
文本字段位于其他设备中。第二个是使用Autolayout
。您可以将约束添加到文本字段以
找到它的位置。
public override void ViewDidLoad ()
{
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
UITextField myTextView = new UITextField();
Add(myTextView);
float ScreenWidth = (float)UIScreen.MainScreen.Bounds.Width;
float ScreenHeight = (float)UIScreen.MainScreen.Bounds.Height;
float textFieldWidth = 200;
float textFieldHeight = 50;
myTextView.Text = "center myTextView";
myTextView.TextAlignment = UITextAlignment.Center;
myTextView.BackgroundColor = UIColor.Blue;
//Method One:
//Frame Center
//myTextView.Frame = new CGRect(new CGPoint(View.Center.X-textFieldWidth/2,View.Center.Y-textFieldHeight/2), new CGSize(textFieldWidth, textFieldHeight));
//Frame
//myTextView.Frame = new CGRect(ScreenWidth / 2 - textFieldWidth / 2, ScreenHeight / 2 - textFieldHeight / 2, textFieldWidth, textFieldHeight);
//Method two:
//autolayout
//myTextView.TranslatesAutoresizingMaskIntoConstraints = false;
//View.AddConstraint(NSLayoutConstraint.Create(myTextView, NSLayoutAttribute.Height, NSLayoutRelation.Equal, 1f, textFieldHeight));
//View.AddConstraint(NSLayoutConstraint.Create(myTextView, NSLayoutAttribute.Width, NSLayoutRelation.Equal, 1f, textFieldWidth));
//View.AddConstraint(NSLayoutConstraint.Create(myTextView, NSLayoutAttribute.CenterX, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterX, 1f, 10f));
//View.AddConstraint(NSLayoutConstraint.Create(myTextView, NSLayoutAttribute.CenterY, NSLayoutRelation.Equal, View, NSLayoutAttribute.CenterY, 1f, 10f));
}
此外,您可以在情节提要中添加约束: center a textfield in storyboard