我需要水平放置UITextField
的居中位置,但是,由于清除按钮是其中的一部分,因此文本字段的(文本输入部分)看起来并不居中-清除按钮并非始终可见,但是会被放入布局时记帐。
在上图中,UITextField
是水平居中的,但是,如果没有清除按钮(右侧的X),并且仅具有搜索文本,它看起来就不会居中。
我可以想到的一种方法是将UITextField
子类化并提供alignmentRectInsets
,对于右侧的插图,我将使用clearButtonRect(forBounds:)
来获取清除按钮的大小,其width
将是。
题:
Apple的文档特别提到不应直接调用alignmentRectInsets
,因此我对此感到有些紧张。但是,从文档中可以感觉到Apple的意图是让人们不要更改直肠,而就我而言,我只是在确定其尺寸,我想这还好吗?
有没有更好的方法来实现这一目标?我知道我可以调整clearButtonRect(forBounds:)
或为文本字段指定edgeInsets
,以使文本字段看起来居中。但是他们都需要对清除按钮的大小进行一些硬编码的假设。
谢谢!
最佳答案
您可以将UITextField Alignment设置设置为中间,然后它将起作用。检查下图
关于ios - 布局UITextField与清除按钮X无关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51395210/