iOS - 以编程方式创建的 TextField 的位置

iOS - Location of a TextField created programmatically

提问人:Ōmega 提问时间:3/19/2017 更新时间:3/19/2017 访问量:182

问:

我有疑问:从代码而不是从界面构建器创建 TextField 是错误的吗?

例如,我使用的是 CocoaPods 获取的“AwsomeTextField”。

在解释的页面中说:

  let field = AwsomeTextField(frame: CGRect(x: 60, y: 200, width: 320, height: 44))
  field.placeholder = "test"
  view.addSubview(field)

但是,如果我分配一个绝对位置,那么如果我在iPad或iPhone上运行该应用程序,当然,图形会变得残酷。CGRect (x: 60, y: 200, width: 320, height: 44)

我可以使用界面构建器中的 cocoa pod 模块来添加正确的约束,或者我也可以通过代码进行自动布局吗?我很困惑!

iOS Objective-C iPhone

评论


答:

0赞 Abizern 3/19/2017 #1

没有什么可以阻止您向在代码中创建的视图添加约束:

let field = AwsomeTextField(frame: .zero) // Create the view with a zero frame
field.placeholder = "test"
field.translatesAutoresizingMaskIntoConstraints = false // You should always do this to views you create in code that you want to apply layout constraints to
view.addSubview(field)
// No that you have added field as a subview, you can add constraints to it here.

如果要使用 Interface Builder,请将纯 UIView 从选取器拖到视图控制器上,然后添加任何约束。然后,将视图的类从 UIView 设置为 AwesomeTextField

评论

0赞 Ōmega 3/19/2017
是的,我明白了,谢谢。但是,如果我想使用界面构建器而不是对每个项目进行编程?(总是使用一些豆荚)
0赞 Oleh Zayats 3/19/2017 #2

“AwsomeTextField”Pod 是 UITextField 的扩展。

在界面构建器中拖拽一个 UITextField 对象,创建一个出口,并将出口类型切换为 AwesomeTextField,如下所示:

@IBOutlet weak var awesomeTextField: AwsomeTextField!

此外,在 xCode 中 Identity Inspector 的 Custom Class 部分中包含类。AwsomeTextField

这样你就不需要一直从代码中创建它;]