闭包的返回值和参数
2016-02-03 22:26
302 查看
class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() /* let sc = UIScrollView(frame: CGRect(x: 0, y: 100, width: 375, height: 44)) sc.backgroundColor = UIColor.redColor() let count = 15 let width = 50 for i in 0..<count{ let label = UILabel() label.backgroundColor = UIColor.greenColor() label.textColor = UIColor.darkGrayColor() label.font = UIFont.systemFontOfSize(17) label.text = "text\(i)" label.frame = CGRect(x: i * width, y: 0, width: width, height: 44) sc.addSubview(label) } sc.contentSize = CGSize(width: count * width, height: 44) view.addSubview(sc) */ let sc = createScrollView({ () -> Int in return 15//第一个参数的闭包返回 }) { (index) -> UILabel in let width = 50 let label = UILabel() label.backgroundColor = UIColor.greenColor() label.textColor = UIColor.darkGrayColor() label.font = UIFont.systemFontOfSize(17) label.text = "text\(index)" label.frame = CGRect(x: index * width, y: 0, width: width, height: 44) return label//第二个参数的闭包返回 } view.addSubview(sc) } //方法的参数有两个参数:一个闭包返回参数,一个闭包返回UILabel func createScrollView(labelCount: ()->Int, labelWithIndex: (index:Int)->UILabel) -> UIScrollView{ // 1.创建UIScrollView let sc = UIScrollView(frame: CGRect(x: 0, y: 100, width: 375, height: 44)) let count = labelCount() // let width = 50 // 2.遍历创建UILabel for i in 0..<count{ /* let label = UILabel() label.backgroundColor = UIColor.greenColor() label.textColor = UIColor.darkGrayColor() label.font = UIFont.systemFontOfSize(17) label.text = "text\(i)" label.frame = CGRect(x: i * width, y: 0, width: width, height: 44) sc.addSubview(label) */ let label = labelWithIndex(index: i) sc.addSubview(label) //CGFloat(count) :不同类型的数据不能直接进行运算 sc.contentSize = CGSize(width: CGFloat(count) * label.bounds.width, height: 44) } // 返回UIScrollView return sc } }
相关文章推荐
- Binary tree related algorithms summary
- SPDY与HTTP2.0
- JAVA WEB学习路线
- 基于CentOS 6的主从DNS服务器搭建
- 《笨办法学Python》 第32课手记
- Androidx学习笔记(49)--- Activity的跳转
- 【HDOJ】4691 Front compression
- 程序员必知的一些快捷键!
- Codeforces Round #341 (Div. 2)(A)模拟
- sqlmap post注入两种方式
- sdk不能更新
- 正则表达式基础
- PHP Cookei记录用户历史浏览信息的代码
- UITableViewCell的循环利用 - 在storyboard里
- 视频编码的三种帧:I帧,B帧,P帧
- Androidx学习笔记(48)--- 创建Activity
- lightoj1150 - Ghosts!
- Robolectric 单元测试中使用 Ressource
- Androidx学习笔记(47)--- 借助xUtils实现下载
- socket INADDR_ANY导致端口可以重复打开