在iPad中打开应用程序时定位UILabel

时间:2011-03-10 23:23:19

标签: iphone ipad uilabel xib universal

我有一个通用的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/

1 个答案:

答案 0 :(得分: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。有时这会更快,特别是一旦你的界面安定下来。