2

我想在屏幕上绘制卡片,它们在布局时有少量文本,在放大时有更多文本,并且理想情况下可以从一种设置动画到另一种设置,例如jQuery(...).show('slow');. 初始状态通过仿射变换略微旋转;我希望它旋转并扩展到放大视图。

我在https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/CoreText_Programming/Operations/Operations.html#//apple_ref/doc/uid/TP40005533-CH4-SW1看到了文档,但我想要更低层次的东西。我希望以响应式编程方式放大并根据分类逐步显示更多信息;因此,当卡片缩小时,ID 号可能会出现在顶部,然后是“JS”在其下方单独一行,如果/当卡片足够宽时扩展为“J Smith”,如果放大则扩展为“Jane Smith” . 与其为 iPad 和 iPhone 安装更多卡片不同,在任何一种情况下,一个显示器都可以容纳大约相同数量的卡片,但 iPad 显示器会显示更大的卡片,在不放大时包含更多信息。

是否有任何函数可以接受字符串、字体标识符和字体大小并返回字符串的像素宽?我知道在核心文本编程中对已经很低级的内容进行微观管理通常是错误的,但我想要一个精心挑选的响应式设计,它针对 iPhone 小型、iPad 小型、放大以及介于两者之间的所有事情进行了优化,并带有渐进式信息披露和分类。

4

1 回答 1

2

是的。对于 pre-iOS7(在 iOS7 中已弃用),请参阅NSStrings 方法(及其其他变体)

- (CGSize)sizeWithFont:(UIFont *)font

对于 iOS7(和 + 可能)

- (CGSize)sizeWithAttributes:(NSDictionary *)attrs

示例代码:

CGSize drawnSize = [myString sizeWithFont:myFont];
于 2013-09-20T15:51:39.790 回答