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

时间:2016-04-15 09:13:20

标签: ios objective-c xcode cocoa autoresize

有没有办法在不使用自动布局和尺寸类的情况下触发不同设备的自动调整大小? 我使用预定义对象(UIButtons,textfield等),但大多数情况下我使用动态自定义对象,我在不同设备上调整大小时遇到​​问题。 当我们不需要使用约束和自动布局+大小类时,我正在寻找旧方法。

有什么想法吗? 谢谢!

2 个答案:

答案 0 :(得分:0)

您可以使用autoresize mask,它是autolayout和size classes的旧版本

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
};

就个人而言,一旦你感到自信,我就会以编程方式创建一些自动布局,但这是一个开始。

答案 1 :(得分:0)

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

如果您希望在UIView中使用调整大小逻辑,请执行相同操作,但重写layoutSubviews。别忘了给super打电话。