自定义UITextField / UIButton
-
05-07-2019 - |
题
我要做的是复制NSTokenField,就像在邮件应用程序和消息应用程序中看到的UITextField一样(键入一个联系人,它会提出建议)。
我已经完成了自动完成工作,当你输入一个UITextField时,会弹出一个UITableView,显示它可以在一个数组中找到的任何匹配,当你点击它时,它会将它添加到UITextField。到目前为止,我对此非常满意。
我现在遇到的问题是使控件看起来像本机应用程序中的控件。毕竟,设计就是一切!
我的第一个问题是如何将这个阴影外观添加到UITableView?看起来它已经沉没在UITextField后面了。
其次,我知道我必须将UITextField子类化,使其看起来像我想要的那样,但我不知道从哪里开始。一些指针或样本会很棒!
最后,我想我需要创建一个带文本空间的自定义UIButton,然后将蓝色渐变添加到UITextField。与UITextField相同的问题,不确定如何子类化UIButton(它需要绘制什么方法和填充)或如何将它添加到UITextField,以便在UITextField中单击退格时,按钮将如果再次单击退格(确切地说NSTokenField如何工作),则突出显示,然后删除。
我已经包含了一张图片,以便您可以看到我在说什么: http://www.thermoglobalnuclearwar.com/stuff/mail.jpg
我看过Joe Hewitts Three20项目,但我无法做出正面或反面。 我想非常简单地开始并理解正在发生的一切,而不是仅仅将他的代码拖入我的代码并且不知道发生了什么!
非常感谢任何帮助!
谢谢, 汤姆。
解决方案 2
好的,我在UITextField下面有阴影,我添加了“To:”给它贴上标签。看起来很棒!
所以最后的事情是蓝色NSToken像控件。我开始认为最简单的事情就是将UIView子类化并在其中绘制蓝色渐变和标签。这让我有了更多的问题:
我发现了这个: http://github.com/leonho/iphone-libs / tree / master 绘制了一个漂亮的圆形视图,我已经调整它来添加一些文本而不是数字,我不知道怎么做是绘制渐变而不是固体块颜色。
之后只需要将圆形视图添加到UITextField,移动光标并确定如何在光标到达时删除视图,但我会在需要时解决这个问题。
其他提示
您是否考虑过使用 Three20图书馆?它包含一个我认为你想做的控件(TTPickerTextView)。
正如网站描述所述
TTPickerTextField 是一个提前输入的UITextField 。在您键入时,它会搜索数据源 选择提前输入选项时,会在文本流中添加气泡。我用它 TTMessageController用于选择邮件收件人的名称。
源代码至少可以为您提供有关如何实现各种视觉效果的一些指示。