gpt4 book ai didi

ios - 为 ui 组件提供绝对值 - 不适用于 iPad

转载 作者:行者123 更新时间:2023-11-29 03:26:11 24 4
gpt4 key购买 nike

我以编程方式添加了一个文本框。我的代码如下:

t = [[UITextField alloc] init];
[t setFrame:CGRectMake(55,200,200,50)];

[self.view addSubview:t];

当我在 iPhone 模拟器上运行它时,它工作得很好(文本字段位于我想要的确切位置),但是当我在 iPad 上运行它时,位置不正确。我想当屏幕尺寸增加/减小时它会自动调整。我该如何纠正这个问题?

注意:我不会使用界面生成器或 Storyboard。

最佳答案

设置绝对值按预期工作。这就是为什么它们被称为绝对值。问题是灵活/动态的值。

除非您告诉它这样做,否则它不会自动调整。以下是您的选择:

  1. 手动检查用户界面习惯用法并设置两个不同的值。这是检测iPhone和iPad UI的正确方法:

    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone) ...

    (为此创建一些函数。)

  2. 根据屏幕或 super View 大小计算值:

    CGSize screen = [[UIScreen mainScreen] bounds].size;
    frame.size.width = screen.width / 2 - 40;
  3. 设置自动调整大小掩码,它设置当父 View 更改大小时 subview 调整大小的规则:

    view.autoresizingMask = UIViewAutoresizingMaskFlexibleWidth;

    必须与一些固定或计算的帧值结合。自动调整大小仅在 View 调整大小时有用,而不是在您第一次设置它时有用,因此这不完全是您的情况。有关其工作原理的完整说明,请参阅 UIView 文档。

  4. 使用自动布局,这是一种功能强大但相当复杂的动态布局解决方案。首先,您需要阅读它并进行实验才能完全理解如何使用它。

如果您有一个 View ,其大小和位置无法用某种规则描述,则必须直接写入坐标(选项 1)。

关于ios - 为 ui 组件提供绝对值 - 不适用于 iPad,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20438099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com