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

标签 objective-c ios cocoa-touch uibutton uitextfield

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

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

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

这就是我要重新创建的内容:

Empty text message form enter image description here

最佳答案

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

PHFComposeBarView

总结一下,这些是功能:

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

关于objective-c - 如何重新创建 iMessage 发送按钮和文本字段布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10008748/

相关文章:

ios - 支持的平台、基础 SDK、仅构建事件架构设置在 pod 更新后恢复

ios - 应用尚未启动时无法获取推送通知数据

ios - 如何使用带有自动布局约束的动画移动 View 在 iOS 上

ios - iOS 中的平移和滑动有什么区别?

iphone - 为什么我的变量没有被分配

iphone - UISegmentedControl 选定索引始终为 0?

ios - 谁应该管理 UI 元素、 View 或 View Controller ?

ios - session :didReceiveFile:未播放音频文件(iPhone要观看)

iOS 11 - 键盘高度在键盘通知中返回 0

iphone - 如何读取屏幕以查看哪些像素是白色的