使用iOS自动布局在iPad中按钮图像大小不变?

时间:2015-11-30 09:39:03

标签: ios iphone xcode storyboard

我正在尝试在iPhone和iPad底部中心创建按钮图像,但按钮尺寸不会改变iPad。它仅显示iPhone尺寸。请帮我创建我的场景。我正在为我的通用应用程序使用不同的按钮图像大小。

enter image description here

3 个答案:

答案 0 :(得分:0)

  1. 首先给按钮提供宽高比,这样根据设备尺寸,按照给定的比例增加按钮的高度和宽度。按照屏幕截图显示宽高比。
  2. enter image description here

    1. 现在,要使视图中心的按钮在容器中给出水平中心,请参见屏幕截图。
    2. enter image description here

答案 1 :(得分:0)

enter image description here

以上图为例:

1.i我知道你已经做了水平中心来查看约束。

2.添加前导约束来查看。

enter image description here 3.add尾随约束来查看。

enter image description here 4.添加底部空间限制以查看。

enter image description here 5.不要设置任何高度和宽度。

现在只需运行它就可以得到确切的要求.......

希望这会对你有帮助..

答案 2 :(得分:0)

您必须根据percentage(%)添加约束,以便按钮图像可以根据device(iPhone / iPad)screen size而变化。

按钮上的StoryBoard约束

Step 1. Drag button and place it on its proper position.

Step 2. Now Add constraint Horizontal Center in Container.

Step 2. Now Add Bottom Pin constraint.

Step 3. Add constraint Equal Width and Equal Height.

Step 4. Now update multiplier of Equal Width constraint and Equal Height.

使用KVConstraintExtensionsMaster以编程方式更新iPad上的约束。

- (void)viewDidLoad
{
    [super viewDidLoad];

    /* preparing View Hierarchy */
    UIButton *button = [UIButton prepareNewViewForAutoLayout];
    [self.view addSubview:button];

    /* applying constraints */
    [button applyConstraintForHorizontallyCenterInSuperview];
    [button applyBottomPinConstraintToSuperviewWithPadding:defualtConstant];

    [button applyWidthConstraint:280]; // fixed width for iphone
    [button applyHeightConstrain:40]; // fixed height for iphone

    // update width constraint with proper iPad ratio
    [button updateAppliedConstraintConstantValueForIpadByAttribute:NSLayoutAttributeWidth];

    // update height constraint with proper iPad ratio
    [button updateAppliedConstraintConstantValueForIpadByAttribute:NSLayoutAttributeHeight];
    /*
     // update Height constraints at any specific ratio on iPad
     if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
        [button updateAppliedConstraintConstantValueByAttribute:NSLayoutAttributeHeight withConstantRatio:1.8];
     }
     */
}