我有一个疑问:从代码而不是从界面构建器创建TextField是错误的吗?
例如,我正在使用' AwsomeTextField'由CocoaPods拍摄。
在解释页面中说:
let field = AwsomeTextField(frame: CGRect(x: 60, y: 200, width: 320, height: 44))
field.placeholder = "test"
view.addSubview(field)
但是,如果我使用CGRect (x: 60, y: 200, width: 320, height: 44)
分配绝对位置,那么如果我在iPad或iPhone上运行该应用程序,那么图形会变得非常糟糕。
我可以使用界面构建器中的 cocoa pod 模块添加正确的约束,还是可以通过代码处理autolayout?我很困惑!
答案 0 :(得分:0)
没有什么可以阻止您为在代码中创建的视图添加约束:
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
答案 1 :(得分:0)
'AwsomeTextField'Pod是UITextField的扩展名。
在界面构建器中拖动UITextField对象,创建一个插座并将插座类型切换为AwesomeTextField,如下所示:
@IBOutlet weak var awesomeTextField: AwsomeTextField!
还在xCode中的Identity Inspector的 Custom Class 部分中包含AwsomeTextField
类。
这样您无需始终从代码创建它;]