热门标签 | 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到容器创建一个到容器的尾随空间约束.

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

在此输入图像描述

在此输入图像描述


推荐阅读
  • iOS Swift中如何实现自动登录?
    本文介绍了在iOS Swift中如何实现自动登录的方法,包括使用故事板、SWRevealViewController等技术,以及解决用户注销后重新登录自动跳转到主页的问题。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • Android开发实现的计时器功能示例
    本文分享了Android开发实现的计时器功能示例,包括效果图、布局和按钮的使用。通过使用Chronometer控件,可以实现计时器功能。该示例适用于Android平台,供开发者参考。 ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • Java图形化计算器设计与实现
    本文介绍了使用Java编程语言设计和实现图形化计算器的方法。通过使用swing包和awt包中的组件,作者创建了一个具有按钮监听器和自定义界面尺寸和布局的计算器。文章还分享了在图形化界面设计中的一些心得体会。 ... [详细]
  • android 触屏处理流程,android触摸事件处理流程 ? FOOKWOOD「建议收藏」
    android触屏处理流程,android触摸事件处理流程?FOOKWOOD「建议收藏」最近在工作中,经常需要处理触摸事件,但是有时候会出现一些奇怪的bug,比如有时候会检测不到A ... [详细]
  • 详解Android  自定义UI模板设计_由浅入深
    学习安卓已有一些日子,前段时间整理了不少笔记,但是发现笔记不变分享与携带。今天开始整理博客,全当是与大家分享交流与自身学习理解的过程吧。结合最近在做的一个新闻类app及学习中的问题,一点一点整理一下, ... [详细]
  • iOS Xcode汇编模式切换的方法介绍
    一、概念 1.汇编指令:模拟器上运行的是Intel指令,而真机上运行的是arm指令, 2.每条汇编指令的格式总是由: 操作码,操作 ... [详细]
  • iOS开发Debug和Release的理解
    2019独角兽企业重金招聘Python工程师标准参考:http:blog.csdn.netmad1989articledetails406580331&# ... [详细]
  • android:EditText属性去边框EditText继承关系:View--TextView--EditTextEditText的属性很多,这里介绍几个:android:h ... [详细]
  • 我收到这个错误.我怎么能在我的情况下解决这个问题?Bitmapcannotberesolvedtoatype发生错误的行publicvoidonPageStart ... [详细]
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社区 版权所有