`
fanfanlovey
  • 浏览: 73837 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Auto Layout Gide:IB中使用自动布局

 
阅读更多
IB中使用自动布局

添加、编辑、删除约束最简单的方法是通过IB上面的可视化布局工具。通过在2个View之间拖动约束即可立即创建一个或者多个约束。这些都是在拖动视图产生的弹出框中操作的

添加约束
当你从对象库拖动一个控件到IB画布上时,你可以毫无约束的通过选择控件然后拖动到四周来给他添加约束。如果你不添加任何约束,你会发现IB会默认固定控件的高度、宽度。然后会根据他的父视图的左上角来固定他。这意味着改变父视图的窗口不会移动或者调整控件。 为了使得控件的大小、位置合适 ,你需要为他添加正确的控件。

要点:虽然在构建一个用户页面如果没有合适的约束Xcode不会提示一些警告或者错误信息,但是你还是应该解决掉警告或者错误的约束。

目前有多种添加约束的方法,至于选择那种方法,主要取决你一次需要添加多少,或者多高精度的约束

通过拖动添加约束
最快添加约束的方法是拖动,你可以选择一个约束,然后拖动到画布中的另一个视图上,操作方法很像拖动outlets和actions。当你明确知道你的控件需要哪种约束,或者什么地方需要约束。拖动方法是最快、最精确的。
你也可以拖动一个控件到本身、到他的父视图、到另个一视图。这将取决你的拖动方向和拖动到哪个控件对象。自动布局对某些拖动的操作可能性做了限制, 比如,你水平向右拖动控件到他的父视图,你可以获取trailing space to contaner 和center vertically in container两个约束选择


小记:在拖动菜单上面, 按住Command 或者shift键 可以同时选择多个约束

通过Align 和 pin按钮添加约束
你同样可以通过自动布局菜单来添加约束,自动布局菜单在IB画布上面



除了添加对齐、间距约束之外,你也可以使用该菜单来解决布局问题、调整约束行为。


Align
创建对齐约束,比如设置一个view在父视图中间,或者在固定2个view左边距对齐
pin
创建间距约束,比如确定一个视图的高度,确定一个视图到另一个视图的水平距离
Issues
根据建议(查看解决自动布局问题)添加或者重置约束来解决布局问题
resizing
确定约束所作用的视图


如果某个约束需要多个视图的话,那么当你只选择一个视图的时候,该约束是不能操作的

通过Align和Pin菜单添加约束
1、选择约束旁边的复选框
     选择“Spacing to nearest neighbor”,点击红色的约束来确定控件所要约束的方向

    如果你要创建的控件的约束是基于某一个控件而并非是最近的控件,则选择复选框上的倒三
进行选择角形
2、输入相应的常数值
3、点击创建约束按钮
     创建按钮添加了你新选择的约束
     创建并更新框架按钮将添加你选择的新的约束,并且根据新的约束重新刷新页面
修改约束
你可以修改约束的约束值、关系、优先级。你可以双击画布上的指定约束,然后修改约束的属性值。也可以在属性检测器上面进行属性修改。当然你不可以修改约束的类型(比如你修改一个高度约束为宽度约束)
笔记:你每次通过点击这两个按钮中的其中一个来创建新的约束,你不可以修改存在的约束,如果需要修改存在的约束,详情 修改约束

添加丢失、推荐的约束
当你在开始进行页面布局,或者当你需要快速添加一系列约束的时候,你可以使用issues menu。
如果你想一次性添加多个约束来描述你的页面布局,选择 issues>Add Missing Constraints 来添加。这个命令是在本来约束的基础上做了系统自动推断处理。
如果你想自动修复一些存在错误的约束,或者你只想重新开始 选择 issue> Reset to Suggested Constraints。来删除一些错误的约束和添加nonambiguous的约束。这明确清除
约束
删除约束
你可以随时删除约束,通过选择画布上的约束或者在outline视图上选择指定约束,然后按删除键删除
  • 大小: 140.6 KB
  • 大小: 117.3 KB
  • 大小: 6.6 KB
  • 大小: 353 KB
  • 大小: 20.9 KB
分享到:
评论

相关推荐

    gide:gide是使用GoGi gui的纯Go中的IDE框架。 它广泛采用emacs键盘绑定

    Gide是纯Go中的灵活IDE(集成开发环境)框架,它使用 GUI(用作连续测试平台:)和交互式解析器进行语法突出显示和更高级的IDE代码处理。 请参阅以获取更多文档,说明(如果有GoGi系统库, go get github....

    maven user gide

    仓库可以是中央仓库、公共仓库或私有仓库,Maven会自动从仓库中下载项目所需的依赖库。 ### Maven的使用场景 - **简单项目构建**:对于简单的Java项目,Maven能够快速地进行构建、测试和打包。 - **项目关系管理**...

    gide_command.rar_Java_

    【标题】"gide_command.rar_Java_" 是一个与Java编程相关的压缩文件,其中包含了多个源代码文件和文本文件,主要是解决"修道士过河"问题。这个问题是一个经典的逻辑问题,通常用来锻炼程序员的逻辑思维和算法设计...

    IoT-identity-security-privacy:#gide2015的幻灯片-2015年欧洲全球物联网日

    标题中的"IoT-identity-security-privacy"是一个关键主题,暗示了这组幻灯片将深入探讨物联网(IoT)领域中的身份识别、安全性和隐私问题。这些是物联网技术发展中的核心关注点,因为物联网设备数量的增长使得网络...

    新型三层骨引导再生胶原膜对大鼠颅骨缺损的成骨研究

    本研究中,研究人员使用了商品化的骨引导再生胶原膜,例如BIO-GIDE膜,它是一种具有双层结构的膜,其中致密层可以阻止结缔组织的长入,而疏松层则促进新骨组织与膜的结合。 ### 骨形成蛋白(BMP)的作用 骨形成...

    ROS6-L5-2G-2GIDE-X86.rar

    RouterOS 6.44.3 L5许可,2G内存,2CPU, 2G IDE盘,非60M硬盘,适合学习测试使用,可用于ESXi 5.5 及以上虚拟机,X86,遗憾的是此版未能破解成64位版,许可也只到L5 (导入的时候提示SHA1值不对的话,请把ROS6.mf里面...

    Android 基础项目,包含很多基础的功能

    图片加载将会使用Glide进行加载,在使用Gide时还会进行二次封装,封装后对应的类文件为ImageLoader,放置在Utils包中 Utils Utils包中会添加一些常用的工具类,例如: LogUtils 关于Log日志打印相关的工具类,可以...

    BaseFragment.java

    BaseFragment封装基类,懒人加载,丢进去就可以直接使用

    对项目经常用到的如BaseActivity,BaseFragment,网络请求等进行一些基本封装

    网络请求框架 网络请求框架将会采用 RxJava + Retrofit + OkHttp的方式,在网络请求中会对三者...图片加载将会使用Glide进行加载,在使用Gide时还会进行二次封装,封装后对应的类文件为ImageLoader,放置在Utils包中

    Ada编程语言

    - **Ada Gide**(美国空军学院提供) - **Ada官方网站**([http://www.adahome.com/](http://www.adahome.com/)) - **AdaPower网站**([http://www.adapower.com/](http://www.adapower.com/)) - **Ada ...

    PP-038psd网页模板_网站psd效果图切片_PSD欧美日韩风格前端页面.zip

    "main.psd"、"main02.psd"、"gide.psd"等文件可能代表网站的主要页面布局,比如首页、引导页或者指南页,每个PSD文件都对应着网站的一个关键部分,设计师通过它们来构建网站的结构和内容。"ill.psd"可能是插图或图像...

    CCS-userguide.rar_CCS_DSP入门编程_DSP编程_ccs dsp_ccs userguide

    CCS学习入门资料 ---CCS user guide ---使用CCS进行DSP编程(一) ---使用CCS进行DSP编程(二) ---使用CCS进行DSP编程(三) ---使用CCS进行DSP编程(四)

    Wi-Fi User Guide for Android 4.1_4.2_4.3-v05.pdf

    AP6236_4.2最新固件移植必须的源码和固件 SDK通过瑞芯微代码服务器对外发布。其编译开发环境,参考附录1。 客户向瑞芯微技术窗口申请SDK,需同步提供SSH公钥进行服务器认证授权,获得授权后即 ...

    Quectel Secure Boot guide

    5. 生成sec.dat文件:sec.dat文件是安全引导过程中使用的一个文件,它包含了一些必要的安全信息和密钥信息,用于验证设备的启动过程。 6. 通过QFIL下载镜像:QFIL(Qualcomm Flash Image Loader)是高通公司提供的...

    vim雄心勃勃的主题-Linux开发

    确保您已使用自己喜欢的插件管理器在vimrc First install插件中设置了termguicolors。 请注意,您应该使用插件管理器的内置工具来重命名插件。 vim-plug插入'embark-theme / vim',{'as':'embark'} vim-packager .....

    matlab代码sqrt-GuideToCode:将markdown执行为python代码

    主要思想是为某些应用程序在markdown中编写gide,可以将其编译为程序。 对于第一个版本,我将为此类代码简单地创建regexp: ```python here are your code ```EOF 并将测试该工具。 运行它python gtc.py app.mdpy ...

    目录树dtree,三级菜单

    例如,在Python中,可以使用类来创建一个表示目录树的树形结构,每个节点代表一个目录,节点之间通过父子关系连接。 在描述中提到的“多个关键字”,这可能是指在实现目录树或三级菜单时,支持用户通过输入多个...

    DbVisualizer 9.1 Users Guide

    DbVisualizer is a feature rich, intuitive multi-database tool for developers and database administrators, providing a single powerful interface across a wide variety of operating systems....

Global site tag (gtag.js) - Google Analytics