最近在写一个登录界面,遇到一个问题,类似于如图设计:
左边图标都是无背景的png图,如果直接加上,以上内容“请”字会紧贴在图标后面,显得很紧凑。
而解决方案可以采用类似于如下的解决方案(swift语言):
[php]
self.passwordTextField = UITextField.init(frame: CGRectMake(shortSplitLineView.frame.origin.x, shortSplitLineView.frame.origin.y+16+1, shortSplitLineView.frame.width, 28))
//左边图标
let passwordTextFieldLeftImageView: UIImageView = UIImageView.init(image: UIImage.init(named: "userPassword.png"))
let passwordTextFieldLeftView: UIView = UIView.init(frame: CGRectMake(0, 0, 30, 28))
passwordTextFieldLeftView.addSubview(passwordTextFieldLeftImageView)
self.passwordTextField.leftView = passwordTextFieldLeftView
self.passwordTextField.leftViewMode = .Always
[/php]
基本原理是:创建一个view,在这个新建的view上添加ImageView,最后在加入到TextField的leftView方法中即可。这样就可以随意调整view的宽度来实现缩进,就不用重写方法等其他繁琐的操作了。