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

发布于 2024-10-21 22:41:39 字数 613 浏览 2 评论 0原文

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

I have a universal iPhone/iPad app. On the main menu I have a UIImage and UILabel that show the current weather conditions outside; the UILabel shows the current temperature.

I am using the same XIB for both versions, I made all of the graphics I am using a high resolution so they scale good for the iPad.

On the iPhone version, right under the UIImage the label is centered, which is what I want it to do. When it loads in the iPad, the UIImage gets a big bigger, but the label stays in the same position, to the left of the screen, not centered under the bigger image. I have tried many different things in IB to get it to center, and I cannot get it to.

Would it also be possible to make the text size bigger when loaded on the iPad?

Here are some images to portray what I am talking about:

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

鹤舞 2024-10-28 22:41:39

不确定您的标签问题,但要改变 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。有时这会更快,特别是当您的界面稳定下来后。

Not sure about your label issue, but to vary text size for iPad create a function to test if you're on an iPad and then use that to vary your code as required. Here's a function to to do the job.

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

And then just write some conditional code. For example:

UIButton *infoCircle;

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

In your case, you'll want to adjust the label font size with something like:

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

If Interface Builder is giving you grief, you can also use the same approach to reposition the UILabel programmatically. Sometimes this is quicker, especially once your interface has settled down.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文