【发布时间】:2018-02-08 01:27:28
【问题描述】:
我是编程和 iOS 开发的初学者。我想制作一个 swift 文件,其中包含制作 Designable 文本字段的代码,所以我不会通过编码来编辑 UI 元素显示,所有将要编辑的 UI,我将在 Interface builder 中进行编辑。
我需要在 UITextfield 中输入图像,我按照这里的教程https://www.youtube.com/watch?v=PjXOUd4hI6U&t=932s 将图像放在 UITextField 的左侧,就像上图中的锁定图像一样。这是要做到这一点
import UIKit
@IBDesignable
class DesignableTextField: UITextField {
@IBInspectable var leftImage : UIImage? {
didSet {
updateView()
}
}
@IBInspectable var leftPadding : CGFloat = 0 {
didSet {
updateView()
}
}
@IBInspectable var cornerRadiusOfField : CGFloat = 0 {
didSet {
layer.cornerRadius = cornerRadiusOfField
}
}
func updateView() {
if let image = leftImage {
leftViewMode = .always
// assigning image
let imageView = UIImageView(frame: CGRect(x: leftPadding, y: 0, width: 20, height: 20))
imageView.image = image
var width = leftPadding + 20
if borderStyle == UITextBorderStyle.none || borderStyle == UITextBorderStyle.line {
width += 5
}
let view = UIView(frame: CGRect(x: 0, y: 0, width: width, height: 20)) // has 5 point higher in width in imageView
view.addSubview(imageView)
leftView = view
} else {
// image is nill
leftViewMode = .never
}
}
}
但现在我只需要在右侧和两者都添加另一个图像(即在右侧和左侧)。如何编辑这些代码?我已经尝试过,但它没有出现,老实说,我有点困惑调整视图的 x 和 y 坐标。我需要你的帮助:)
【问题讨论】:
标签: ios swift uitextfield ibdesignable