分配帧的正确方法

时间:2012-12-06 15:51:20

标签: objective-c ios view

我正在开发一个应用程序,当用户点击按钮时,视图将显示下面的视图,视图高度取决于某些标准。它将是一些x高度或y高度,没有其他高度。现在我的问题是什么是为该视图分配高度的正确方法,我应该根据标准进行硬编码还是每次根据放置的内部视图计算高度。如果我每次计算高度,那么现在它是无用的,因为我们知道应该是什么高度但是将来可能会发生UI变化,因此高度可能会改变。 我想知道你们的想法,哪种方法正确?

提前致谢!

2 个答案:

答案 0 :(得分:0)

只要视图布局不变,我就会使用硬编码值。即使if稍后会改变,我也会首先使用硬编码的值,然后当真正需要时,我会将实现更改为动态的。我的逻辑背后的原因是,在真正需要之前,条件可以非常快速地改变,因此即使您实现动态实现,现在也无法确定在真正需要时不需要再次更改它因为规范改变,直到那时,例如

答案 1 :(得分:0)

我做了硬编码和计算的混合:

要计算视图的位置,我定义硬编码插图:

CGFloat topInset = 5;
CGFloat bottomInset = 5;

CGFloat leftInset = 5;
CGFloat interButtonDistance = 10;

然后我通过以下方式计算子视图的位置:

CGFloat startX = 0;
CGFloat startY = 0;

CGFloat buttonSize = 50;

CGFloat buttonX = leftInset + column * (buttonSize + interButtonDistance);

此外,我不使用硬编码的屏幕尺寸,我读了它们

   CGFloat height = self.view.frame.size.height; // or similar

然后我可以通过

在视图底部放置一个按钮
buttonY = height - buttonHeight - bottomInset;

使用这种技术,您可以更加独立于iphone / ipad屏幕高度。 在使用具有dieffernet屏幕尺寸(iphone 5)的设备时仍然需要调整值,但这更容易,希望yus只需要调整topInset和boittomInset,其余的工作开箱即用(希望如此)