获取UIButton for iPhone 5/6/6 +的可变高度

对于我的1)肖像只有2)部署目标iOS7 / iOS8的应用程序,我有我的deviseUIButtons具有可变高度,为iPhone 5,iPhone 6和iPhone 6 +。 我正在尝试使用自动布局。 (尽pipe不使用大小类)。

使用自动布局如何指定这3种屏幕尺寸的UIButton的可变高度。 iPhone 5 *上的按键看起来不错,但在iPhone 6/6 +上更薄。 现在在自动布局,我可以说高度> =或=或<=说55),但如何指定44为iPhone5,55为iPhone6,66为iPhone6 +?

这是我可以实现只使用自动布局的东西,还是我需要在代码中manupulate(框架)? 那么我使用自动布局的重点是什么?

除了框架我的devise还指定不同的字体大小。 我如何去做这件事。 任何最有名的方法,Stack-O的朋友..

这听起来像你需要修改高度约束常数值。

在xib / storyboard中,为高度约束创build一个视图/控制器的出口。

在运行时,可能在viewDidLoad ,你会找出你正在使用的设备,然后改变高度约束的常量。

 CGFloat height; // if iPhone 5 // height = 44 // else.......... self.buttonHeightConstraint.constant = height; 

这会自动触发一个标志,告诉AutoLayout重新计算框架并再次布置视图。

你正确地问“如果我必须直接操纵框架,自动布局又有什么意义”? 谢天谢地,你不必这样做。

一个简单的方法是指定与标准高度视图相关的高度(考虑适合整个屏幕的视图)。

例如,我们可以将button的高度设置为等于视图高度的一半。

这样,button总是随着视图向上或向下缩放(大小方向)。 自动布局将保证它们之间的关系永远是1/2。

在这里输入图像说明

在这里输入图像说明

现在,button的大小是其超级视图尺寸的一半,不pipe大小。

我通过向UIButton添加一个Height-Constraint来pipe理这个。 做出口,你可以在你的UIViewController子类中使用_myConstraint.constant = 55来设置高度;