我正在为 iPhone 和 iPad 制作一个通用应用程序。我知道有一个选项可以定义文本在太大时应该向下缩放到选定的点大小但是当文本显示在 iPad 上时我需要文本向上缩放。那可能吗?我有一个大小为 18 磅的标签。考虑到文本的长度,这几乎占据了 iPhone 上的整个宽度。但在 iPad 上,由于屏幕尺寸增加,情况并非如此……
感谢您的时间。
我在通用应用程序上遇到了同样的问题。
我确实设置了自动调整参数以直接在 Interface Builder 中缩放所有组件,但它没有缩放字体大小以占用新给定的屏幕空间。
我最终viewDidLoad
使用下面的代码更新了每个视图的
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
for (UIView *component in self.view.subviews) {
if ([component isKindOfClass:[UILabel class]]) {
UILabel *labelToUpdate = (UILabel *) component;
[labeltoUpdate setFont:[labelToUpdate.font fontWithSize:labelToUpdate.font.pointSize*2]];
}
}
该应用程序现在可以很好地从 iPhone 扩展到 iPad。
您可以循环使用该方法:
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(UILineBreakMode)lineBreakMode
直到你得到一个占用两行的匹配,然后使用以前的字体大小。似乎更快/更容易使用成语来定义 iPad 的特定尺寸。