如何重新创建iMessage发送按钮和文本字段布局?

时间:2012-04-04 09:50:10

标签: objective-c ios cocoa-touch uibutton uitextfield

我是XCode和Objective-C的新手,并且正在尝试重新创建iMessage应用程序的底栏,但我无法弄清楚如何做到这一点。我见过其他应用程序使用完全相同的布局,例如WhatsApp Messenger,这让我觉得可能有一些简单的方法可以做到。

似乎不可能让UIButton看起来像发送按钮,并且看起来同样不可能使UITextField看起来像输入字段。是真的都是通过使用图像完成的,还是有一些原生的(正确的)方法呢?如果它是所有图像,我在哪里可以找到它们,或者我必须自己制作?

另外,如何在用户输入文本时使文本字段垂直展开? This question至少似乎回答了如何使用图像制作动态宽度按钮,而不是如何制作高度可变的文本字段。

这是我正在尝试重新创建的内容:

Empty text message form enter image description here

2 个答案:

答案 0 :(得分:8)

没有简单的方法可以做到这一点。棘手的部分是模仿元素的行为和精确位置。我为我开发的应用程序高精度地完成了这项工作,并将组合栏提取到一个独立项目中,这样任何人都可以轻松搞定。它被称为PHFComposeBarView。这是它的样子:

PHFComposeBarView

总结一下,这些是功能:

  • 主按钮的标题(右侧的标题)可以更改
  • 主按钮的色调可以更改
  • 可以更改占位符的标题
  • 占位符作为进一步自定义的属性公开
  • 文本视图作为进一步自定义的属性公开
  • 实用程序按钮(左侧的那个)可以通过设置实用程序来显示 按钮图像(透明背景上的白色图像的最佳结果 至32pt边长)
  • 指定最大字符数时的可选字符计数器(类似于 在Messages.app中输入短信;不强加最大字数限制)
  • 使用委托来通知按钮按下
  • 从文本视图转发委派方法
  • 在文本换行并发布通知并发送委托时自动增长 有关更改前后帧更改的消息,以便您可以进行调整 你的其他观点 用于框架更改并发送委托方法,以便您可以调整视图
  • 默认情况下向上增长,或向下增长
  • 增长的最大高度可以用点数或行号指定

答案 1 :(得分:5)

快速谷歌搜索栏。您必须制作自己的按钮图像,并在点按它时更改它。它的文本视图不是文本字段,你必须动态地改变大小。它背后有一个图像视图,也可以改变大小。我的建议是更多地使用谷歌。我通过2秒的谷歌搜索找到了很多这样的东西。至于栏,他是链接http://developer.apple.com/library/ios/#samplecode/KeyboardAccessory/Introduction/Intro.html