我有一个UITextField,它使用Xcode6s自动布局界面,我已经设置了400点的宽度。这在更大的屏幕设备上看起来很好,但在iPhone 5s上,这些框会从包含视图中消失。解决这个问题的正确方法是什么?
有没有办法设置一个约束,如果屏幕比这个大,则使UITextFields宽度为400点,如果不是,就填充容器视图,而不是溢出到视图之外,或者我是否应该使用size类来设置UITextField的宽度,使其与紧凑视图上的父视图具有相同的宽度。
发布于 2014-10-29 01:49:57
不是在UITextField上设置宽度约束,而是在其左侧和右侧添加水平间距约束。这样,UITextField将根据屏幕自动调整大小。
发布于 2014-10-29 01:57:49
就像Kris所说的,设置水平空间约束是开始这个问题的一个很好的方法。
为了回应您关于不想要恒定“边际”的评论,您可以执行以下操作:
在您的类中的Builder.
NSLayoutConstraints.
IBOutlet)( .h或.m;it‘tNSLayoutConstraints.IBOutlet to the各自的视图生命周期方法(viewDidLoad/viewWillAppear:) ),将约束设置为您所需的值。听起来您主要是想防止字段在iPad上覆盖整个屏幕,所以您可以这样做(假设NSLayoutConstraint的名称为"textFieldLeft“,而UITextField的名称为"textField"):
- (void)viewDidLoad {
if (UI_USER_INTERFACE_IDIOM == UIUserInterfaceIdiomPad) {
self.textFieldLeft.constant = 50.0f;
self.textFieldRight.constant = 50.0f;
[self.textField layoutIfNeeded];
}
}https://stackoverflow.com/questions/26614506
复制相似问题