如何自动调整可可 xcode 的大小?

Posted

技术标签:

【中文标题】如何自动调整可可 xcode 的大小?【英文标题】:How to auto resize cocoa xcode? 【发布时间】:2016-04-15 09:13:20 【问题描述】:

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

有什么想法吗? 谢谢!

【问题讨论】:

【参考方案1】:

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

如果您想在 UIView 中包含调整大小的逻辑,请执行相同操作,但要覆盖 layoutSubviews。不要忘记致电super

【讨论】:

我在 lvl 视图中有一些系统在视图中...但我在 viewDidLoad 中调用它...我会尝试你的想法和上面的想法,我会告诉你谁工作得最好。 ..【参考方案2】:

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

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
;

个人而言,一旦您有信心,我会考虑以编程方式创建一些自动布局,但这是一个开始。

【讨论】:

以上是关于如何自动调整可可 xcode 的大小?的主要内容,如果未能解决你的问题,请参考以下文章

Cocoa 查看自动缩放内容

如何在 XCodes 4.3.2 中自动调整大小

如何在 xcode 自动布局中使对象自动调整大小?

如何使用 Xcode 8 上的自动布局调整对象的大小以适应不同的屏幕尺寸?

如何使用自动布局调整情节提要的图像大小?

为啥约束更喜欢调整一个堆栈的大小而不是另一个,你如何改变这种偏好? (xCode)