Cod*_*221 0 closures ios swift
我想知道closure在函数中是否有使用a 的方法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
}
}
Run Code Online (Sandbox Code Playgroud)
我没办法了,尝试失败了。提前致谢。
该代码是相同的,除了图像视图的大小。根据设备设置大小变量,不要重复任何其他代码。
func updateView() {
if let image = leftImage {
leftViewMode = UITextField.ViewMode.always
let size: CGFloat = UIDevice.current.userInterfaceIdiom == .phone ? 20 : 30
let imageView = UIImageView(frame: CGRect(x: 0, y: 0, width: size, height: size))
imageView.contentMode = .scaleAspectFit
imageView.image = image
imageView.tintColor = color
leftView = imageView
} else {
leftViewMode = UITextField.ViewMode.never
leftView = nil
}
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句-不要编写基于设备习惯用法做出决定的代码。根据视图控制器视图的大小做出决定。
| 归档时间: |
|
| 查看次数: |
69 次 |
| 最近记录: |