我在iOS应用中为textfield创建了一个图像。但文字似乎与图像重叠。有没有办法防止这种情况或以另一种方式实现相同的设计。以下是我面临的问题的图像。
有没有办法让文字从文本字段中的特定位置开始?
答案 0 :(得分:2)
一种解决方案是使您的UITextField成为UITextField的子类。这将允许您覆盖textRectForBounds:
- 现在您负责文本的去向。
特别是,在您的覆盖中,调用super
以获取原始矩形。现在增加原点的x分量一定量,以便为图像留出空间,并将尺寸的宽度减少相同的量。返回结果修改后的矩形,你就完成了。
答案 1 :(得分:1)
这将允许您更改文本所在的矩形:
class MyCustomTextField : UITextField {
var leftMargin : CGFloat = 10.0
override func textRectForBounds(bounds: CGRect) -> CGRect {
var newBounds = bounds
newBounds.origin.x += leftMargin
return newBounds
}
override func editingRectForBounds(bounds: CGRect) -> CGRect {
var newBounds = bounds
newBounds.origin.x += leftMargin
return newBounds
}
}
答案 2 :(得分:0)
我还找到了通过向文本字段添加偏移来实现此目的的另一种方法。但是当你在同一个视图中有多个文本字段时,发现这不是一个理想的解决方案。只需将解决方案添加为其他人的参考,以便有人发现它有用。
let paddingView = UIView(frame: CGRectMake(0, 0, 60, self.yourTextField.frame.height))
yourTextField.leftView = paddingView
yourTextField.leftViewMode = UITextFieldViewMode.Always