2013-10-01 87 views
2

我是新来的ios开发,仍然试图让自动布局挂起。我现在面临的问题可以用以下图片ios autolayout约束来调整屏幕大小的视图

App on Iphone 5 screen size 4 inch

App on iphone 4 screen size 3. inch

现在更好地解释,我去掉iPhone上的4我要的是“与社交网络登录”如何中心在“OR标签”和“无需注册开始”按钮 之间的谷歌加号图标,它也应该调整大小以适应它们之间。

它需要达到什么样的约束。如果有人能指出我的方向是正确的,那将是很大的帮助。这一整天我一直都在为此而头痛。谢谢。

+0

当你说,你说,你这样做在运行时,或者当你在设计你的IB鉴于“我‘与社交网络登录’删除”? – Rob

+0

在运行时删除。 http://prntscr.com/1uluj7我想要的是增加两个箭头之间的空间。而不是底部的按钮上升。 – aradhya

+0

好的。我已经用两种方法更新了我的答案,以处理“Login with ...”标签的删除以及相应地更新/重新应用限制。 – Rob

回答

2

居中[G +] [或]之间[开始...]按钮: 你需要做两件事情..情节提要:

  1. 选择[G +]和[或]
  2. 选择编辑器 - >销的垂直间距

然后

  1. 选择[G +]和[开始]
  2. 选择编辑器 - >引脚垂直间距

您应该在每次看到两个对象之间出现一条垂直线。这表明该空间在3.5“或4”iPhone显示屏上始终是相同的天气。

我不明白你为什么要g +按钮来调整大小......实际上,UI指南指示不同用户不应该有不同的用户体验(请参阅为什么没有替换对于iOS 7.0已弃用sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:方法)

阻止更改标签/按钮上的字体大小(取决于形状因素等导致不同用户拥有不同体验)的逻辑是阻止您向上或向下缩放的逻辑您的[g +]按钮也取决于外形因素。

+0

他我试过你说的话。这是iPhone 5上的结果http://prntscr.com/1ulpdu – aradhya

+0

以上所做的一切都是为了确保三个按钮之间的距离保持不变。您必须确保在*之前放*任何约束......按钮放置在中间......以确保它确实处于中间位置......在3.5英寸和4英寸的外形尺寸上测试它 - 在故事板上,选择包含查看问题 - 打开正确的栏 - 显示属性检查器 - 对于大小选择3.5,看看它的样子,然后选择4.0,看看它看起来像 – abbood

+0

http://prntscr.com/1uluj7我想要的是空间两箭之间增加。而不是底部的按钮上升。 – aradhya

0

如果你只是试图让“或”标签和之间为中心的“G +”图形“启动时不登记”的标签,您可以:

  1. 添加视图(你赢了因为你会使它透明,但它对于对齐有用),其顶部约束与“OR”标签相关联,并且其底部约束与“无注册开始”标签相关联:

  2. 然后在该视图内放置“g +”图形,将其中心垂直和水平约束与其超级视图对齐。

    enter image description here

如果你这样做,“G +”按钮,会留在这两个标签(假设,当然中间,将“启动时不登记”的标签具有底部约束它的超级观点,即它固定在视图的底部)。在调整按钮的大小方面,如果您想要,我会亲自劝您,例如,您可以删除我们上面创建的透明视图,只需使用“g +”图像/按钮即可实现该功能本身。您将需要将该图像视图的内容大小设置为“Aspect Fit”(因此它不会变形)。

同样,我真的不喜欢后一种方法,但你可以做到。


我收集到你想在运行时删除“使用社交网络登录”标签。有两种方法为:

  1. 一个简单的方法是为高度约束为标签,例如,logInWithSocialNetworkHeightConstraint创建一个IBOutlet,然后你可以这样做:

    self.logInWithSocialNetwork.text = nil; 
    self.logInWithSocialNetworkHeightConstraint.constant = nil; 
    [self.view layoutIfNeeded]; 
    
  2. 另一种方法是定义“OR”标签和“g +”图形适当视图之间的约束。这本身,有两种可能的方法:

    • 你可以在IB定义,但其中优先级小于1000因为在“登录与...”标签的约束将有更高的优先级定义它当那个标签在那里时,那些约束将优先。如果您删除标签:

      [self.logInWithSocialNetwork removeFromSuperview]; 
      [self.view layoutIfNeeded]; 
      

      然后,您定义的新约束将发挥作用。

    • 您也可以删除“Login with ...”标签,然后以编程方式在“OR”按钮和“g +”图形视图之间添加一个新约束。

相关问题