第一个Xcode项目 - 代码修改布局约束
第一行的选中效果已经有了,那第二行的选中效果怎么做呢?
我这里选择改变布局约束来实现选中效果 [我有个用object-c做APP的同事他说,我觉得这个应该去获取色块的位置,然后赋给选中用的View,然后横屏的时候也这么重新定位一下。我只想说: 好像很麻烦啊 ]
那改变布局约束要怎么做呢?往下看
这几个绑定完成以后
@IBAction func typeColorBtnCheck(sender: UIButton) { selectColor = sender.backgroundColor print(selectColor) ContentView.removeConstraint(typeColorConstraintSelect)//删除ContentView里面原有的约束typeColorConstraintSelect typeColorConstraintSelect = NSLayoutConstraint( item: sender, //建立约束的第一个控件,这里是我们点击的那个色块按钮sender attribute: NSLayoutAttribute.CenterX, //约束的类型 relatedBy: NSLayoutRelation.Equal, toItem: typeColorSelect, //建立约束的第二个控件 attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, //约束比例 constant: 0 //约束偏移值 ) ContentView.addConstraint(typeColorConstraintSelect)//添加新的约束 }
注意:约束的父容器一定要弄对,不然添加了之后肯定是有问题或者没有效果的
注意:约束添加以后是为两个控件添加了一个约束,两个控件共有一个约束,所以要避免重复添加约束
自此,我们就完成了第二行色块选中的效果 (当然横屏什么的它也是没有问题的,不信你试试?) ???
补一段完整代码
class EidtViewController: UIViewController {@IBOutlet var typeBtn: [UIButton]! @IBOutlet var typeColorBtn: [UIButton]! @IBOutlet weak var typeColorConstraintSelect: NSLayoutConstraint! @IBOutlet weak var ContentView: UIView! @IBOutlet weak var typeColorSelect: UIView! var selectColor: UIColor? override func viewDidLoad() { super.viewDidLoad() selectColor = typeColorBtn[0].backgroundColor // Do any additional setup after loading the view. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } @IBAction func typeBtnCheck(sender: UIButton) { for btn in typeBtn { btn.layer.borderWidth = 0 btn.tintColor = typeColorBtn[0].backgroundColor } sender.layer.borderWidth = 1 sender.layer.borderColor = UIColor.init(red: 176/255.0, green: 176/255.0, blue: 176/255.0, alpha: 1).CGColor sender.tintColor = selectColor } @IBAction func typeColorBtnCheck(sender: UIButton) { selectColor = sender.backgroundColor print(selectColor) ContentView.removeConstraint(typeColorConstraintSelect)//删除ContentView里面原有的约束typeColorConstraintSelect typeColorConstraintSelect = NSLayoutConstraint( item: sender, //建立约束的第一个控件,这里是我们点击的那个色块按钮sender attribute: NSLayoutAttribute.CenterX, //约束的类型 relatedBy: NSLayoutRelation.Equal, toItem: typeColorSelect, //建立约束的第二个控件 attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, //约束比例 constant: 0 //约束偏移值 ) ContentView.addConstraint(typeColorConstraintSelect)//添加新的约束 } }
原文链接:http://www.jianshu.com/p/e9d55e3d252d
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
第一个Xcode项目 - 代码修改布局约束相关推荐
- Android代码修改ConstraintLayout约束关系
//代码修改ConstraintLayout约束关系 ConstraintSet set = new ConstraintSet(); //克隆父布局(ConstraintLayout)的约束关系 s ...
- Unity3D_HDRP项目代码修改天空球
U3D HDRP项目 代码修改天空球的办法 public Volume volume;public UnityEngine.Rendering.HighDefinition.HDRISky HDRIS ...
- 发一个统计项目代码行数的Java代码
import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.util.Arra ...
- 将项目代码上传至svn服务器,xcode 把项目代码提交到远程SVN服务器
环境 xcode 7 Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...
- commit是直接提交到远程吗 svn_xcode 把项目代码提交到远程SVN服务器
环境 xcode 7 Mac air xcode默认支持GIT源码管理工具,但现在想把代码提交到已有到SVN服务器上,步骤如下: 1,在safari中打开svn链接地址,信任证书,输入用户名密码 , ...
- Android Studio的代码笔记--基本使用、新建一个项目、修改快捷键、常用控件的使用等
基本使用 创建一个新项目 新建一个activity 修改主界面 新建一个布局并引用 app模块下的文件目录结构 res 下的常用资源目录 AndroidManifest.xml文件代码解释 Activ ...
- 【转 iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
原文网址:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式 ...
- iOS 8 Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
原文链接:http://blog.csdn.net/pucker/article/details/41843511 上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式 ...
- Auto Layout界面自动布局系列2-使用Xcode的Interface Builder添加布局约束
上一篇文章<iOS 8界面自动布局系列-1>简要介绍了iOS界面布局方式的前世今生.本篇文章将详细介绍如何使用自动布局实现不同屏幕尺寸的适配. 添加自动布局约束(下文简称约束)有以下三种方 ...
最新文章
- QS世界大学最新排名公布:清华超过耶鲁,MIT仍居榜首,12所中国高校跻身百强...
- 这次终于彻底理解了傅里叶变换
- 三维识别与位姿估计——Surafce Matching
- Crazepony的理念
- 申请补办 CET(纸笔考试)成绩证明的方法
- mysql 时间 1_(转)mysql日期时间函数1
- [转载]SQL Plus 一些使用技巧
- C#用DataTable实现Group by数据统计
- 互联网创业公司的传统思维
- 中文信息处理——使用结巴分词系统
- 主流搜索引擎博客提交地址
- 别让PPT把你绑架了
- 2018/5/3单纯和纯洁
- 无论是否跳槽——都要时刻关注自身能力提升
- 如何启动android模拟器,如何从命令行启动Android模拟器?
- 阿里和微博的异地多活方案
- 为什么禁止超过三张表 join,原理是什么?
- 乐2的android版本,乐视2高通|MIUI10|安卓6.0|最终完美版|极速_最新最全的乐2高通版ROM刷机包下载、刷机...
- 图像增强算法(持续更新中)
- [Python公开课]零基础玩转Python基础篇----第四节:Python的字符串