Мне нравится знать, есть ли способ использовать closure
в функции updateView()
, чтобы код был not repeated
для phone
и pad
в приведенном ниже коде. Здесь закрытие должно иметь parameters
для width
и height
@IBInspectable var leftImage: UIImage? {
didSet {
updateView()
}
}
func updateView() {
if let image = leftImage
{
leftViewMode = UITextField.ViewMode.always
if (UIDevice.current.userInterfaceIdiom == .phone)
{
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 20, height: 20))
imageView.contentMode = .scaleAspectFit
imageView.image = image
imageView.tintColor = color
leftView = imageView
}
if (UIDevice.current.userInterfaceIdiom == .pad)
{
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 30, height: 30))
imageView.contentMode = .scaleAspectFit
imageView.image = image
imageView.tintColor = color
leftView = imageView
}
}
else
{
leftViewMode = UITextField.ViewMode.never
leftView = nil
}
}
У меня кончились идеи, безуспешно пытаясь. Заранее спасибо.