`
lizhuang
  • 浏览: 904242 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Auto Layout三种形态

阅读更多
Auto Layout builds constraints in three ways. So far, you’ve read about two of them. First, you can lay out your constraints in Interface Builder(IB) and customize them to your needs.Second, you can build single constraints in code. The NSLayoutConstraint class offers the constraintWithItem:attribute:relatedBy:toItem:attribute:multiplier:constant: method, which enables you to create constraints one at a time, relating one item’s attribute to another. In this chapter, you’ll read about the third way: using a visual formatting language to express how items are laid out along vertical and horizontal axes.

This chapter explores what these visual constraints look like, how you build them, and how you use them in your projects. You’ll read about how metrics dictionaries and constraint options extend visual formats for more flexibility. And you’ll see numerous examples that demonstrate these formats and explore the results they create.

There’s one thing to keep in mind throughout: All constraints are members of the NSLayoutConstraint class, regardless of how you build them. Every constraint stores a “y relation mx +b” rule within an Objective-C object and expresses that rule through the Auto Layout engine. Visual formats are another tool that takes you to that same place.

使用IB,代码写的NSLayoutConstraint,还有Visual formats转化的NSLayoutConstraint.


Layout constraints (NSLayoutConstraint class, public)

These rules specify view geometry. They restrict a view’s position and size by relating a view to other views and / or to constant values.

Content size constraints(NSContentSizeLayoutConstraint class, private)

Content size rules specify how a view’s size should relate to its content. For example, content hugging rules avoid adding padding, and content compression rules prevent clipping.

Autosizing constraints (NSAutoresizingMaskLayoutConstraint class, private)

Autosizing constraints translate the older autosizing masks into the Auto Layout system.

Layout support constraints (_UILayoutSupportConstraint class, private)

Introduced in iOS7, layout support constraints establish practical boundaries for the tops and bottoms of your view controller instances. These constraints restrict content from overlapping with obstacles such as status bars.


Prototyping constraints (NSIBPrototypingLayoutConstraint class, private)

Also new to iOS 7, prototyping constraints are constraints that Interface Builder(IB) adds for you. They enable you to build interfaces incrementally yet still have a working interface to test. When you ship apps, your code should not use, reference, or otherwise include prototyping constraints.


In IB, you create layout support constraints by constraining views to top or bottom layout guide proxies.

UIView *topLayoutGuide = (UIView *)self.topLayoutGuide;
CONSTRAIN(@”V:[topLayoutGuide][textView]|”, topLayoutGuie, textView);

In this example, a text view stretches between the top guide, which defines the top of the application context space, and the bottom of the parent.
分享到:
评论

相关推荐

    Ios auto layout guide

    当你创建一个新项目时,Auto Layout默认是启用状态的。Auto Layout的核心概念包括约束基础、固有内容大小(Intrinsic Content Size)、应用架构以及控制器的作用等。 Auto Layout基础部分介绍了约束的概念以及如何...

    iOS Auto Layout开发秘籍 第2版 中文完整版本

    Auto Layout是Apple为iOS、macOS等平台设计的一种强大的布局系统,它允许开发者在不同尺寸和方向的屏幕上创建适应性强、响应式的用户界面。本资源包含《iOS Auto Layout开发秘籍 第2版》的中文完整版本,旨在帮助...

    Swift自适应布局(Adaptive Layout)教程

    Swift自适应布局(Adaptive Layout)是iOS开发中的一个重要概念,它是Apple为实现跨不同屏幕尺寸和设备类型的应用程序界面自适应而设计的一种布局技术。在这个教程中,我们将深入探讨如何利用Swift和Auto Layout实现...

    公司内部培训资料Orcad Layout Plus培训教程

    - **校对打印与精细输出**:Layout Plus支持两种打印模式,一种用于校对,将所有板层叠加打印,另一种用于精细输出,可以单独选择每个板层进行打印,适用于生产前的最后检查和制造图纸准备。 #### 4. 深入Layout ...

    Layout API 帮助文档

    - 支持三种值类型:普通字符串(仅改变标题文本)、数组(文本+CSS样式)、布尔值 false(隐藏标题栏)。 - 示例:`title: ['我是标题', 'font-size:18px;']` 设置标题文本及样式。 3. **content - 内容** - ...

    DMConstraintDemo

    **三、Auto Layout 和 Size Classes** Size Classes 是 Auto Layout 的一个扩展,它允许开发者针对不同的屏幕方向和设备类型定义不同的布局。每个 Size Class 都表示一种潜在的屏幕尺寸类别,如 Compact Width 和 ...

    jQuery界面布局插件【UI.Layout】1.2.0 - 中文参考

    1. **Auto Resizing**: UI Layout 支持自动调整大小,当浏览器窗口尺寸变化时,布局会自动适应,保持各面板的比例。 2. **Nested Layouts(嵌套布局)**: 可以在一个已经设置了布局的容器内部再创建新的布局,实现...

    直接修改frame

    - 在Auto Layout启用的情况下,直接修改frame可能会导致视图状态混乱,特别是当约束与frame冲突时。因此,建议在Auto Layout环境中优先使用约束来管理布局。 - 修改frame可能导致视图的渲染问题,特别是在滚动视图...

    AutoLayout

    3. 响应式设计(Responsive Design):通过设置约束,可以实现界面元素在不同状态下的响应式变化,如展开和折叠菜单。 4. 设备兼容性(Device Compatibility):确保应用在iPhone、iPad、Mac等不同设备上都能呈现...

    AutolayoutDemo

    Auto Layout 是苹果开发的一种界面布局技术,用于在iOS和macOS平台上构建自适应且响应式的用户界面。这个“AutolayoutDemo”项目很显然是为了演示如何在代码和XIB(Interface Builder的接口文件)中使用Auto Layout...

    Practical Autolayout for Xcode

    Auto Layout是一种动态的布局方式,它使用约束来定义界面元素之间的关系,而不仅仅是元素在屏幕上的绝对位置。当屏幕尺寸或方向改变时,Auto Layout可以根据这些约束动态地重新计算并定位界面元素。 #### 开始使用...

    autocad2004

    1. **启动与界面认识**:首先,我们需要了解如何启动AutoCAD 2004,并熟悉其工作界面,包括菜单栏、工具栏、命令行、状态栏等组成部分,这些都是进行后续操作的基础。 2. **基本绘图命令**:学习AutoCAD的核心在于...

    AutoLayOUt

    在开发过程中,使用Xcode的“Visual Format Language”(VFL)可以帮助理解约束,同时“Debug View Hierarchy”功能可以在运行时可视化界面的约束状态,以便定位布局问题。 七、自适应布局 AutoLayout与...

    AUTOCAD2009教程

    最后,第06章和第07章可能涉及到布局(Layout)和打印(Printing)的相关知识,学习者会学习如何设置布局视口,创建多个视图展示同一设计的不同部分,并了解如何调整打印设置,以便于将CAD设计准确地输出到纸上或...

    适配页面的demo

    Auto Layout是一种强大的布局系统,允许开发者定义视图之间的关系,以便在各种屏幕尺寸下自动调整它们的位置和大小。"5"在这里可能指的是iPhone 5系列的屏幕尺寸,因为苹果公司在推出iPhone 6和6 Plus后逐渐淡化了对...

    AUToCAD教程ADDSKJsdgjgf

    1. **界面介绍**:了解AutoCAD的主界面,包括菜单栏、工具栏、命令行和状态栏等组成部分,以及它们各自的作用。 2. **基本绘图命令**:如直线(Line)、圆(Circle)、矩形(Rectangle)和多边形(Polygon)等,...

    Masonry的基本使用

    在iOS开发中,Auto Layout 是苹果提供的一种布局系统,用于在不同屏幕尺寸和方向上创建适应性用户界面。然而,纯代码使用Auto Layout有时可能会变得复杂,这就是Masonry发挥作用的地方。通过Masonry,我们可以用更加...

    Android实现底部状态栏切换的两种方式

    在Android应用开发中,底部状态栏切换是一种常见的交互设计,用于在不同的内容区域之间进行导航。以下是两种常见的实现方式的详细说明: 1. **TabLayout + Fragment + ViewPager 实现** 这种方法通常用于创建多...

Global site tag (gtag.js) - Google Analytics