`

Swift -> NSLayoutConstraint纯代码实现自动布局-初级篇

 
阅读更多

 

 

转自: http://blog.csdn.net/taoerit/article/details/51317152

 

要求 宽高200的view,通过代码,使得view在距离父控件的右下角20边距处

 

/* 约束的设置,控件内部约束由自己添加,比如宽高,如果是与其他的

           控件约束那么有父控件添加

        

        *创建约束 NSLayoutConstraint  参数 说明:

        * item 自己

        * attribute

        * relatedBy 大于等于 小于等于 等于

        * toItem 另外一个控件

        * attribute 另一个控件的熟悉

        * multiplier 乘以多少

        * constant : 加上多少

        * NSLayoutConstraint : 某个控件的属性值 等于 另外一个控件的属性值 

                       乘以多少 加上多少

        

        * 添加约束 addConstraint

        */

 

 

swift 代码:

 

       let blueView =UIView();

        blueView.backgroundColor =UIColor.blueColor()

        self.view.addSubview(blueView)//系统默认会给autoresizing 约束

// 关闭autoresizing 不关闭否则程序崩溃

        blueView.translatesAutoresizingMaskIntoConstraints =false

 

 

       //宽度约束

       let width:NSLayoutConstraint =NSLayoutConstraint(item: blueView, attribute: NSLayoutAttribute.Width, relatedBy:NSLayoutRelation.Equal, toItem:nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier:0.0, constant:200)

        

        blueView.addConstraint(width)//自己添加约束

        

       //高度约束

       let height:NSLayoutConstraint =NSLayoutConstraint(item: blueView, attribute: NSLayoutAttribute.Height, relatedBy:NSLayoutRelation.Equal, toItem:nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier:0.0, constant:200)

        

        blueView.addConstraint(height)//自己添加约束

 

       //右边约束

       let right:NSLayoutConstraint =NSLayoutConstraint(item: blueView, attribute: NSLayoutAttribute.Right, relatedBy:NSLayoutRelation.Equal, toItem:self.view, attribute:NSLayoutAttribute.Right, multiplier:1.0, constant: -20)

        

        blueView.superview!.addConstraint(right)//父控件添加约束

 

       //下边约束

       let bottom:NSLayoutConstraint =NSLayoutConstraint(item: blueView, attribute: NSLayoutAttribute.Bottom, relatedBy:NSLayoutRelation.Equal, toItem:self.view, attribute:NSLayoutAttribute.Bottom, multiplier:1.0, constant: -20)

        

        blueView.superview!.addConstraint(bottom)//父控件添加约束

分享到:
评论

相关推荐

    swift-iOS平台高效转换引擎json->modelmodel->json

    WHC_Model iOS平台高效转换引擎json->model,model->json,model->Dictionary,支持模型类继承其他模型类,支持指定路径转换,不区分json的key和模型属性名称大小写,自动处理json中null。

    swift-Bamboo用一行代码实现自动布局和手动布局

    在本篇文章中,我们将深入探讨Bamboo库的核心概念、如何使用它来实现一行代码的布局,并比较其与原生Swift和Auto Layout的差异。 ### Bamboo库简介 Bamboo是由Wordlessj开发的一个轻量级框架,它的目标是提供一个...

    swift-swift-syntaxSwift语法库开源用于研究解析转换自动生成Swift代码

    `swift-syntax`是Apple官方为Swift语言提供的一种工具,它是一个纯Swift编写的库,专注于Swift代码的语法解析、转换和生成。这个库的开源对于开发者,特别是那些对编译器技术、代码生成或语言工具感兴趣的开发者来说...

    swift-Yahoo开源的在线obj-c->swift工具

    这个开源项目“objc2swift-master”可能包含了实现这些功能的源代码,开发者可以通过阅读和研究这些代码来学习如何进行语言间的代码转换,以及如何构建类似的在线工具。对于想要深入理解编译原理和Swift/Objective-...

    swift -> KxMenu 垂直弹出菜单

    Swift中的KxMenu是一款常用的垂直弹出菜单工具,它为iOS开发者提供了一种优雅的方式来实现类似下拉菜单的效果。在iOS应用开发中,这样的组件常常用于实现导航或选项选择,给用户带来便捷的操作体验。KxMenu是用...

    swift-Swift一句代码实现新特性页面

    本篇文章将聚焦于“Swift一句代码实现新特性页面”,旨在介绍如何高效地利用Swift的特性来快速构建新功能页面。 首先,我们要理解“新特性页面”通常是指应用启动时或更新后展示给用户的一系列介绍新功能或改进的...

    swift-简单的NSLayoutConstraint表达式解析器用于更易读的autolayout代码

    总结起来,`swift-简单的NSLayoutConstraint表达式解析器` 是一个旨在简化Swift中AutoLayout代码的实用工具。通过提供易读的表达式,它降低了布局代码的复杂性,提高了开发效率,使开发者能够更专注于应用的业务逻辑...

    swift-Colorutilities采用纯Swift实现的颜色工具类

    9. **代码示例与文档**:开源项目通常会提供详细的代码示例和API文档,帮助开发者快速理解和使用库中的各种功能,Swift-ColorUtilities也应该不例外。 10. **版本控制与更新**:文件名`soffes-Color-5649ec4`中的`...

    swift-swift-video-generator用图片加音频生成视频及多视频合并的库

    2. **编写代码**:创建Swift-Swift-Video-Generator 的实例,设置图片序列、音频文件和视频参数。 3. **合成视频**:调用相应的API合成视频或合并视频,处理完成后保存到本地或上传到云端。 4. **错误处理**:处理...

    swift-Swift-Radio-Pro完整的Swift2.0的App开源应用

    Swift-Radio-Pro是一款基于Swift 2.0编程语言开发的开源应用程序,专为iOS平台设计。这个项目提供了从头到尾构建一个功能完备的音乐电台应用的实例,对于学习Swift编程语言以及移动应用开发的开发者来说,是一个极其...

    swift-greedo-layout-for-ios响应式网格布局

    Swift-Greedo-Layout 是一个专为 iOS 设计的响应式网格布局库,由著名摄影社区 500px 开发并开源。这个布局库旨在解决在固定单元格高度时,如何自适应地调整单元格内容(如图片)的宽度,以确保每一行的内容都能在...

    swift-Toolbar平滑自然带有自动布局的交互式工具栏

    在这个名为"swift-Toolbar平滑自然带有自动布局的交互式工具栏"的项目中,开发者旨在创建一个具有平滑动画效果和自动布局功能的交互式`Toolbar`,以提升用户体验。 `Toolbar`在iOS应用中扮演着多种角色,例如在底部...

    swift-diff-纯Swift实现的简单diff库

    diff - 纯Swift实现的简单diff库

    swift-Restraint-Swift中最小的自动布局AutoLayout

    Swift中最小的自动布局Auto Layout"是一个专注于提供简洁、高性能Auto Layout体验的库,对于Swift开发者来说,它提供了一种更优雅的方式来处理UI布局,特别是在处理复杂界面时,可以显著提升开发效率和代码质量。

    swift-Petral-UI基于Swift的UI布局框架实现UI的搭建属性设置自动布局以及支持XML布局

    这比使用原生的NSLayoutConstraint更加直观和灵活,减少了布局相关的错误。 最后,XML布局是Android开发中的常见方式,Petral-UI支持XML布局意味着开发者可以从已有的Android开发经验中受益,使用XML文件来描述UI...

    swift-SplashView-一行代码解决闪屏页(广告页)-iOS(Swift)篇

    Swift-SplashView 是一个专为 iOS 开发者设计的库,旨在简化在 Swift 中实现闪屏页(也称为启动广告页)的过程。闪屏页通常用于显示品牌信息、广告或者加载应用的初始数据,它会在应用程序启动时短暂展示。通过使用 ...

    swift-FDTemplateLayoutCell-模板自动布局单元格自动UITableViewCell高度计算

    `FDTemplateLayoutCell`是其中一个非常实用的库,它专为UITableView设计,旨在自动化UITableViewCell的高度计算,以实现模板自动布局。这个库使得我们不再需要手动为每个cell计算并设置高度,从而简化了代码,提高了...

    swift-Cell嵌套UICollectionView自动布局获取高度示例

    在这个“swift-Cell嵌套UICollectionView自动布局获取高度示例”中,我们将深入探讨如何在UITableViewCell中嵌套一个UICollectionView,并实现自动布局来动态计算高度。 首先,我们需要理解UITableView和...

    swift-基于swft3.0的水平横向排布流体布局

    在Swift编程语言中,开发iOS或macOS应用时,我们经常需要实现自定义的布局以满足特定的设计需求。"基于Swift3.0的水平横向排布流体布局"是一个这样的自定义布局,它允许视图在屏幕上以水平方向流动,同时保持一定的...

    swift-swift-pons-纯Swift中面向协议的数字系统

    "swift-swift-pons-纯Swift中面向协议的数字系统"是一个专注于使用协议来扩展数字类型的库,名为swift-pons。这个库的创建旨在为Swift提供更灵活的数字处理能力,特别适用于科学计算或需要高度定制的数学运算场景。 ...

Global site tag (gtag.js) - Google Analytics