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

本文共 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

你可能感兴趣的文章
Unity调用Windows窗口句柄,选择文件和目录
查看>>
HashMap循环遍历方式
查看>>
React Native 入门 调试项目
查看>>
C# 通过 Quartz .NET 实现 schedule job 的处理
查看>>
关于java之socket输入流输出流可否放在不同的线程里进行处理
查看>>
目前为止用过的最好的Json互转工具类ConvertJson
查看>>
Day13
查看>>
tensorflow saver简介+Demo with linear-model
查看>>
Luogu_4103 [HEOI2014]大工程
查看>>
Oracle——SQL基础
查看>>
项目置顶随笔
查看>>
Redis的安装与使用
查看>>
P1970 花匠
查看>>
NOIP2016提高A组五校联考2总结
查看>>
iOS 项目的编译速度提高
查看>>
table中checkbox选择多行
查看>>
Magento开发文档(三):Magento控制器
查看>>
性能调优攻略
查看>>
ie6解决png图片透明问题
查看>>
瞬间的永恒
查看>>