博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
swift - VFL - 1.循环创建控件 2.metrics使用
阅读量:6117 次
发布时间:2019-06-21

本文共 2496 字,大约阅读时间需要 8 分钟。

1. /// 创建单个热门项目itemView    private func creatProcduceItemView(producrName: String , producePrice: String) -> UIView {        let item = UIView()        item.translatesAutoresizingMaskIntoConstraints = false        let produceLab = JYBaseViewModel.creatLabe(text: producrName, font: UIFont.systemFont(ofSize: 16), textColor: UIColor.init(hexColor: "9B9B9B"))        let priceLab = JYBaseViewModel.creatLabe(text: "¥ " + producePrice.decimalPointCount(), font: UIFont.systemFont(ofSize: 16), textColor: UIColor.init(hexColor: "9B9B9B"))        item.addSubview(produceLab)        item.addSubview(priceLab)        let vd: [String: UIView] = ["produceLab": produceLab ,                                    "priceLab": priceLab]        item.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "|[produceLab]", options: [], metrics: nil, views: vd))        item.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "[priceLab]|", options: [], metrics: nil, views: vd))        item.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[priceLab]|", options: [], metrics: nil, views: vd))        item.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|[produceLab]|", options: [], metrics: nil, views: vd))        return item    }

  

2.  /// 根据数组创建数量    func setitemsBgViewSubViews(itemsArr : [String]){                //添加之前移除所有 添加的控件        itemsBgView.subviews.forEach({$0.removeFromSuperview()})                /// 布局热门项目的view        for (i, _) in itemsArr.enumerated(){                        let itemView = self.creatProcduceItemView(producrName: itemsArr[i], producePrice: "38.0")            itemsBgView.addSubview(itemView)                        let vd: [String: UIView] = ["itemView": itemView]            let metrics: [String: Any] = ["top": CGFloat(i) * 30]            itemsBgView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "|[itemView]|", options: [], metrics: nil, views: vd))            itemsBgView.addConstraints(NSLayoutConstraint.constraints(withVisualFormat: "V:|-top-[itemView(30)]", options: [], metrics: metrics, views: vd))            if i == itemsArr.count - 1 {                itemView.bottomAnchor.constraint(equalTo: itemsBgView.bottomAnchor).isActive = true            }        }    }
3. 父控件设置约束self.fastAddConstraints("|-24-[itemsBgView]-24-|", vd)注意:如果这里父控件是在scrollview 上, 这里宽度要自己设置为屏幕宽度self.fastAddConstraints("|-24-[itemsBgView(屏幕宽度)]-24-|", vd)

  

 

转载于:https://www.cnblogs.com/qingzZ/p/9909999.html

你可能感兴趣的文章
php小知识
查看>>
Windows下安装、运行Lua
查看>>
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解(二)
查看>>
用php curl请求接口碰到的问题总结
查看>>
初识中间件之消息队列
查看>>
MyBatis学习总结(三)——优化MyBatis配置文件中的配置
查看>>
Spring常用注解
查看>>
我的友情链接
查看>>
PCS子层有什么用?
查看>>
查看端口,关闭端口
查看>>
代码托管平台简介
查看>>
glbp详解
查看>>
一个简单好用的zabbix告警信息发送工具
查看>>
彻底解决SysFader:IEXPLORE.EXE应用程序错误
查看>>
正则表达式
查看>>
Unix/Linux下删除Oracle控制文件Controlfile为什么实例Instance没有立即奔溃?
查看>>
泄露门年终盘点:***用户网站间的“罗生门”
查看>>
linux:yum和apt-get的区别
查看>>
Sentinel 1.5.0 正式发布,引入 Reactive 支持
查看>>
如何对网站进行归档
查看>>