如何自动调整大小 cocoa xcode?

How to auto resize cocoa xcode?

有什么方法可以在不使用自动布局和大小的情况下触发不同设备的自动调整大小 类? 我使用预定义对象(UIButtons、文本字段...等),但大多数情况下我使用动态自定义对象,并且在不同设备上调整大小时遇到​​问题。 当我们不需要使用约束和自动布局 + 大小 类.

时,我正在寻找旧方法

有什么想法吗? 谢谢!

您可以使用自动调整大小掩码,这是老式的自动布局和大小 类

UIView *myView = [[UIView alloc]initWithFrame:CGRectMake(0.0f, 0.0f, self.view.bounds.size.width, 100.0f)];
myView.autoresizingMask = UIViewAutoresizingFlexibleWidth;

其中有一些可以帮助您获得理想的结果

typedef NS_OPTIONS(NSUInteger, UIViewAutoresizing) {
    UIViewAutoresizingNone                 = 0,
    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
};

就个人而言,一旦您感到自信,我会考虑让您以编程方式创建一些自动版式,但这是一个开始。

如果您想在 UIViewController 中执行调整大小逻辑,请添加一个 ivar 来存储 CGSize 并将其初始化为 CGSizeZero,然后覆盖 viewDidLayoutSubviews,并将视图的大小与存储的变量进行比较。如果它们不同,存储新尺寸并更新视图的框架,如果它们相同,return.

如果您想在 UIView 中使用调整大小逻辑,请执行相同的操作,但改写 layoutSubviews。不要忘记致电 super.