我刚刚创建了一个水平和垂直居中的按钮,并固定了它的高度。
当我在模拟器中运行程序并比较iphone 6+和iphone 6的高度时,按钮的高度显着小于6,而不是6+。没关系。
然而在4s模拟器中,按钮的高度与iphone 6中的高度相同。有人可以解释为什么会这样吗? 4s的屏幕高度小于6的高度,但按钮的高度保持不变。
这个事实给我带来了很多问题,我可以构建一个漂亮的用户界面,以便与所有iphone设备兼容。我一直有这样的问题,我需要一个对象,例如按钮在4s内小。当我把它变小时,它太小了6或6加
谢谢
答案 0 :(得分:1)
如果您有固定的高度限制,则按钮在所有设备上的高度都相同。您可以做的是为您的身高限制制作IBOutlet
,并将其在代码中更改为每个屏幕尺寸所需的尺寸。
@interface MyResizingButton ()
@property (nonatomic, weak) IBOutlet NSLayoutConstraint *heightConstraint;
@end
@implementation IMScrollViewFillingView
- (void)layoutSubviews {
[self.heightConstraint setConstant:0.3*CGRectGetHeight(self.superview.frame)];
[super layoutSubviews];
}
@end
上面的代码会使您的按钮变小或变大,具体取决于superview
的大小。我假设按钮被添加到视图中,该视图根据设备屏幕大小调整大小(如UIViewController
中的根视图)。您可能需要调整计算以适合您的设计。
如您所见,我创建了一个自定义UIButton
类来处理此可调高度。要使其正常工作,您需要将UIButton
中storyboard
的类设置为此自定义类。当然,您可以直接在视图控制器中添加代码,然后就不需要自定义按钮类了。
另一个选择是不使用固定高度,而是使用aspect ratio
约束将按钮的高度连接到其他高度。由于我真的不知道你的界面是如何工作的,所以我真的不能给你一个具体的例子。
希望这有助于解决您的问题。