热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

使用自动布局在屏幕上均匀地展开按钮.它们之间的间距不相等

如何解决《使用自动布局在屏幕上均匀地展开按钮.它们之间的间距不相等》经验,为你挑选了2个好方法。

我需要在屏幕上水平布置一系列按钮,使它们在屏幕上的间隔相等,而不是它们之间的间隔相等.一个例子是在那里有3个按钮,它们是均匀间隔的,这样第一个按钮的中心位于屏幕宽度的25%,而其他按钮则是屏幕宽度的50%,75%.

这是相对简单的手动将它们放在x,y坐标,但我试图避免混合方法.

普遍的建议是在按钮之间使用垫片(UIView)并设置约束以使垫片相等.如果间隔的按钮具有可能不同的尺寸,则这不起作用.假设有3个标有"A","B","ReallyLong"的按钮.我仍然希望它们居中,屏幕中间有"B".等间隔物在它们之间留下相等的间距但不均匀分布的按钮.ReallyLong占用了太多空间而B没有居中

在此输入图像描述



1> Ken Thomases..:

您可以创建约束以将按钮的centerX与其容器对齐.然后,编辑该约束,使按钮的centerX等于容器的尾随属性,乘数为0.25,0.5或0.75(和0常量).为了最自然地做到这一点,你可能需要告诉Xcode交换第一和第二项,这样Button.CenterX等于Superview.Trailing(带乘数)而不是相反.



2> Omer Waqas K..:

Apple已经很好地解释了它.

在视图之间创建相等的间距

要根据设备的方向布置多个按比例间隔的视图,请在可见视图之间创建间隔视图.正确设置这些间隔视图的约束,以确保可见视图能够根据设备的方向保持间隔.

以下示例使用上述任务中的步骤来说明如何按比例间隔定位两个视图.间隔视图是为示例注释的,但通常是空的,没有背景.首先,创建两个视图并将它们放在故事板中.

在此输入图像描述

添加三个间隔视图 - 一个位于最左侧视图的左侧,一个位于两个视图之间,另一个位于最右侧视图的右侧.间隔视图此时不必具有相同的大小,因为它们的大小将通过约束来设置.

在此输入图像描述

为spacer视图创建以下约束:

将间隔物视图2和间隔物视图3的宽度限制为等于间隔物视图1的宽度.

将间隔物视图1的宽度限制为大于或等于
最小期望宽度.

从间隔视图1到容器创建一个前导空间到容器约束.

从间隔视图1到视图创建水平间距约束1.将此约束设置为小于或等于约束,
优先级为1000.

从间隔视图2到视图1
和视图2 创建水平间距约束.将这些约束设置为小于或等于
约束,优先级为999.

从间隔视图3到视图创建水平间距约束2.将此约束设置为小于或等于约束,
优先级为1000.

从间隔视图3到容器创建一个到容器的尾随空间约束.

这些约束创建了两个可见视图和三个不可见视图(间隔视图).这些间隔视图会随着设备方向的变化自动调整大小,保持可视视图的比例间隔,如下图所示:

在此输入图像描述

在此输入图像描述


推荐阅读
  • 深入解析Android自定义View面试题
    本文探讨了Android Launcher开发中自定义View的重要性,并通过一道经典的面试题,帮助开发者更好地理解自定义View的实现细节。文章不仅涵盖了基础知识,还提供了实际操作建议。 ... [详细]
  • 本文介绍如何使用布局文件在Android应用中排列多行TextView和Button,使其占据屏幕的特定比例,并提供示例代码以帮助理解和实现。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • 本文介绍如何使用 Android 的 Canvas 和 View 组件创建一个简单的绘图板应用程序,支持触摸绘画和保存图片功能。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
  • 本文探讨了在Java中实现系统托盘最小化的两种方法:使用SWT库和JDK6自带的功能。通过这两种方式,开发者可以创建跨平台的应用程序,使窗口能够最小化到系统托盘,并提供丰富的交互功能。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 深入理解ASP.NET MVC中的_ViewStart.cshtml
    本文介绍了_ViewStart.cshtml文件在ASP.NET MVC 3.0及以上版本中的作用和使用方法。该文件位于Views目录下,主要用于统一配置视图布局和其他全局设置。 ... [详细]
  • Qt QTableView 内嵌控件的实现方法
    本文详细介绍了在 Qt QTableView 中嵌入控件的多种方法,包括使用 QItemDelegate、setIndexWidget 和 setIndexWidget 结合布局管理器。每种方法都有其适用场景和优缺点。 ... [详细]
  • 本文详细探讨了Android Activity中View的绘制流程和动画机制,包括Activity的生命周期、View的测量、布局和绘制过程以及动画对View的影响。通过实验验证,澄清了一些常见的误解,并提供了代码示例和执行结果。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
author-avatar
菲菲不停2502898155
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有