我是 ios 开发的新手,但仍在尝试掌握自动布局。下面的图片可以更好地解释我面临的问题
现在我正在删除 iphone 4 上的“使用社交网络登录”。我想要的是如何将 google plus 图标居中在“或标签”和“开始而不注册”按钮之间,并且它还应该调整大小以适应它们之间。
它需要什么样的约束来实现这一目标。如果有人能指出我正确的方向,那将是很大的帮助。这一天我一直在头疼。谢谢。
我是 ios 开发的新手,但仍在尝试掌握自动布局。下面的图片可以更好地解释我面临的问题
现在我正在删除 iphone 4 上的“使用社交网络登录”。我想要的是如何将 google plus 图标居中在“或标签”和“开始而不注册”按钮之间,并且它还应该调整大小以适应它们之间。
它需要什么样的约束来实现这一目标。如果有人能指出我正确的方向,那将是很大的帮助。这一天我一直在头疼。谢谢。
在 [or] 和 [start ..] 按钮之间居中 [g+]:您需要在情节提要上做两件事..:
接着
您应该每次都会看到两个对象之间出现一条垂直线。这是为了表明该空间在 3.5 英寸或 4 英寸 iPhone 显示屏上始终是相同的天气。
我不明白您为什么要调整 g+ 按钮的大小。这实际上违反了 UI 指南,该指南指示不同的用户不应该有不同的用户体验(请参阅为什么没有替代 iOS 7.0 的原因弃用sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:方法)
不鼓励根据外形尺寸更改标签/按钮上的字体大小导致不同用户有不同体验的相同逻辑,同样也会阻止您根据外形尺寸情况放大或缩小 [g+] 按钮.
如果您只是想将“g+”图形置于“OR”标签和“Start without registering”标签之间,您可以:
添加一个视图(您不会真正看到,因为您将使其透明,但它对于对齐目的很有用),其顶部约束链接到“OR”标签,其底部约束链接到“不注册开始”标签:
然后将“g+”图形放在该视图内,将其中心垂直和水平约束与其父视图对齐。
如果你这样做,“g+”按钮将停留在这两个标签之间(当然,假设“不注册开始”标签对其父视图有一个底部约束,即它固定在视图的底部)。
在调整该按钮的大小方面,我个人建议不要这样做,如果您愿意,例如,您可以删除我们在上面创建的透明视图,并使用“g+”图像/按钮本身来完成这个技巧。您需要将该图像视图的内容大小设置为“Aspect Fit”(因此它不会失真)。
同样,我真的不喜欢后一种方法,但你可以做到。
我收集到您想在运行时删除“使用社交网络登录”标签。有两种方法:
IBOutlet
一种简单的方法是为该标签创建一个高度约束,例如,logInWithSocialNetworkHeightConstraint
然后您可以执行以下操作:
self.logInWithSocialNetwork.text = nil;
self.logInWithSocialNetworkHeightConstraint.constant = nil;
[self.view layoutIfNeeded];
另一种方法是在“OR”标签和“g+”图形的适当视图之间定义一个约束。这本身有两种可能的方法:
您可以在 IB 中定义它,但将其定义为小于 1000 的优先级。因为“使用...登录”标签的约束将具有更高的优先级,当该标签存在时,这些约束将优先。如果您删除标签:
[self.logInWithSocialNetwork removeFromSuperview];
[self.view layoutIfNeeded];
然后,您定义的新约束将发挥作用。
您也可以删除“使用...登录”标签,然后以编程方式在“或”按钮和“g+”图形视图之间添加新约束。