ios - UILocalNotification.alertBody 的格式化文本

标签 ios uilocalnotification

我正在寻找一种方法来格式化 UILocalNotificationalertBody 文本。我注意到,例如邮件应用程序从主题设置第一行,第二行和第三行是电子邮件正文的预览。如果主题超过 1 行,则会被截断。这适用于动态字体,因此无论辅助功能中设置的文本大小如何。 我试图取得同样的结果,但没有成功。

我尝试过的

  1. 截断字符串到指定长度
  2. 在使用 preferedFontForTextStyle 时使用 sizeWithAttributes 获取字符串大小

所有这些解决方案都部分有效,但对于某些文本大小/设备会失败

我正在寻找的是一种获取锁定屏幕的通知字体名称、大小、字距调整或任何其他必要参数的方法,以便能够将 UILocalNotification.alertBody 正确设置为只有一行文本具有任何文本大小辅助功能设置的任何 iOS 设备。

我知道这些属性对于不同的 iOS 版本可能会有所不同,但 iOS8 对我来说已经足够了。

谢谢

最佳答案

让操作系统进行布局

您最接近的是猜测。 你可以使用

"\n"

强制执行回车,但您肯定不知道何时使用它。

没有 iOS 支持让您提前知道您的通知将到达的屏幕尺寸或方向。

你反对横幅:

横幅不显示 localNotification.alertTitle

2 notification banners, portrait and landscape

然后争分夺秒,可以这么说:

您提前创建通知。它们是本地的这一事实并没有理由知道 future 会怎样:就你所知,你可能会在 1 个月后开始安排,并且用户可能已经更新了操作系统,导致应用新字体或布局约束。

换句话说,这个问题的答案是: 您需要为 Apple Computer 工作并在显示通知之前获得本地回调,到目前为止,这不是一个选项。

Notification Center


结论

使用short alertTitleshort alertBody,可能到处都是\n 强制换行。

// Use '\n' to force newline
localNotification.alertBody = "Alert fired.\nWas set for ..."

关于ios - UILocalNotification.alertBody 的格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224042/

相关文章:

ios - React Native 中具有固定宽度和可用空间的灵活布局

ios - 应用程序关闭时如何处理localNotifications

ios - Swift - 交付应用程序上的本地通知图标角标(Badge)编号更新在后台

ios - 确定 UILocalNotification 是否是从调度或用户交互中触发的

iphone - 如何退出方法?

ios - 错误 - 捕获 "NSInternalconsistencyException","API violation - element is a required parameter"

ios - UITableView 在有数据之前没有弹出数据

ios - 如何在 titleForHeaderInSection 方法中更改字体样式和背景颜色

ios - 处理作用于 UILocalNotification 的用户

ios - 安排本地通知(无声)在后台 + swift ios 中执行自定义任务