1

我有一个通用的 iPhone/iPad 应用程序。在主菜单上,我有一个 UIImage 和 UILabel 显示外面的当前天气状况;UILabel 显示当前温度。

我对两个版本都使用相同的 XIB,我使用高分辨率制作了所有图形,因此它们适用于 iPad。

在 iPhone 版本上,在 UIImage 正下方,标签居中,这是我想要的。当它在 iPad 中加载时,UIImage 变得更大,但标签保持在相同的位置,在屏幕的左侧,而不是在更大的图像下方居中。我在 IB 中尝试了许多不同的方法来使其居中,但我无法做到。

在 iPad 上加载时是否也可以使文本大小变大?

这里有一些图像来描述我在说什么:

iPhone版:http: //img855.imageshack.us/i/iphonei.png/

iPad版:http: //img163.imageshack.us/i/ipadh.png/

4

1 回答 1

2

不确定您的标签问题,但要更改 iPad 的文本大小,请创建一个函数来测试您是否在 iPad 上,然后根据需要使用它来更改代码。这是完成这项工作的功能。

BOOL isIPad()
{
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
    {
        return YES;
    }
    return NO;
}

然后只需编写一些条件代码。例如:

UIButton *infoCircle;

    if (isIPad())
    {
        infoCircle =  [UIButton buttonWithType:UIButtonTypeInfoDark];
    }
    else
    {
        infoCircle =  [UIButton buttonWithType:UIButtonTypeInfoLight];
    }

在您的情况下,您需要使用以下内容调整标签字体大小:

if (isIPad())
{
      [[self mainLabel] setFont: [UIFont systemFontOfSize: 18.0]];
}
else
{
      [[self mainLabel] setFont: [UIFont systemFontOfSize: 14.0]];
}

如果 Interface Builder 让您感到难过,您也可以使用相同的方法以编程方式重新定位 UILabel。有时这会更快,尤其是在您的界面稳定下来之后。

于 2011-03-11T00:18:32.023 回答