我正在寻找一种方法来格式化 UILocalNotification
的 alertBody
文本。我注意到,例如邮件应用程序从主题设置第一行,第二行和第三行是电子邮件正文的预览。如果主题超过 1 行,则会被截断。这适用于动态字体,因此无论辅助功能中设置的文本大小如何。
我试图取得同样的结果,但没有成功。
我尝试过的
- 截断字符串到指定长度
- 在使用
preferedFontForTextStyle
时使用sizeWithAttributes
获取字符串大小
所有这些解决方案都部分有效,但对于某些文本大小/设备会失败
我正在寻找的是一种获取锁定屏幕的通知字体名称、大小、字距调整或任何其他必要参数的方法,以便能够将 UILocalNotification.alertBody
正确设置为只有一行文本具有任何文本大小辅助功能设置的任何 iOS 设备。
我知道这些属性对于不同的 iOS 版本可能会有所不同,但 iOS8 对我来说已经足够了。
谢谢
最佳答案
让操作系统进行布局
您最接近的是猜测。 你可以使用
"\n"
强制执行回车,但您肯定不知道何时使用它。
没有 iOS 支持让您提前知道您的通知将到达的屏幕尺寸或方向。
你反对横幅:
横幅不显示 localNotification.alertTitle
然后争分夺秒,可以这么说:
您提前创建通知。它们是本地的这一事实并没有理由知道 future 会怎样:就你所知,你可能会在 1 个月后开始安排,并且用户可能已经更新了操作系统,导致应用新字体或布局约束。
换句话说,这个问题的答案是: 您需要为 Apple Computer 工作并在显示通知之前获得本地回调,到目前为止,这不是一个选项。。
结论
使用short alertTitle
,short alertBody
,可能到处都是\n
强制换行。
// Use '\n' to force newline
localNotification.alertBody = "Alert fired.\nWas set for ..."
关于ios - UILocalNotification.alertBody 的格式化文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32224042/