【发布时间】:2016-05-09 11:04:15
【问题描述】:
我有一个UITextField,是我以编程方式创建的。我想在开头和结尾有不可编辑的前缀字符,例如
"Hello [TextField] world".
首先,我尝试手动添加字符并使用shouldChangeCharactersInRange make 但这种方法不起作用,因为如果用户长按 TextField 并开始,他可以编辑第一个字符(所以可以弄乱前缀人物)。这个选项似乎不太方便。
另一个选项可能是创建一个空的UITextField 和 2 个静态的UILabels(用于“Hello”和“world”)。这里,又出现了一个问题。由于我的UITextField 的文本居中对齐(并且在视图中垂直居中),因此我给它一个视图的宽度和 x 轴的 0(因此 textField 会同时触及视图的左右边缘)。相反,如果我在创建时尝试为 TextField 提供固定宽度,则宽度不会在用户输入时扩展/拉伸。
我想要实现的是从 0 开始 TextField 的宽度,并且在每一侧都有静态的 UILabels,如 "hello "[textField]" world";当用户输入时,向左和向右增加/拉伸 textField 的宽度(因为它是 textaligned center)。随着 textField 的宽度延伸,将UILabel 推向边缘。所以:
| ["Hello "][textField][" world"] |
| ["Hello "][MyTextFieldTextIsNice][" world"] |
不使用 Storyboard 并以编程方式实例化 UITextField 和 UILabels 的正确方法是什么?如何在用户键入时创建自动调整大小的文本字段,将 UILabel 推到两侧?
【问题讨论】:
标签: ios swift autolayout uitextfield uilabel