我实现了一个解决方案,将一个底部边框放到一个运行良好的文本字段但我有以下问题。如果我在较大尺寸(iPad mini,iPad Pro)或横向(iPhone6,6s)上启动应用程序,则文本字段下的线条拉伸不正确。
我为textfields创建了一个扩展名:
extension UITextField {
/**
Customize the UITextField for App
- parameter isPasswordField: Boolean to check if this field is a password field
- author: Simon Zwicker <simon.zwicker@gmail.com>
*/
func customize(isPasswordField: Bool) {
let bottomLine = UIView()
bottomLine.frame = CGRect(x: 0.0, y: self.frame.size.height - 1, width: self.frame.size.width, height: 1.0)
bottomLine.backgroundColor = UIColor.grayColor()
self.addSubview(bottomLine)
self.tintColor = UIColor.grayColor()
if isPasswordField {
self.textColor = UIColor.blueColor()
}
}
我在customize()
viewWillLayoutSubviews()
函数
我在某个地方犯了错误吗?在我将设备置于纵向并返回景观之后,它可以工作。
文本字段的大小初始正确,但自定义函数中的self.frame.size.width初始化太小。你知道发生了什么吗?
答案 0 :(得分:2)
我能够复制你的问题,似乎在调用viewWillLayoutSubviews时,文本字段最后没有显示在屏幕上的宽度(或者没有应用约束) )。
在customize
中呼叫viewDidLayoutSubviews
可以正确缩放该行。我不确定你对这个解决方案是否满意。