學習記錄#58 Swift 的九九乘法

目的: 學習 for 迴圈

1. 在 playground 用 print 印出結果

for i in 1...9 {   for j in 1...9 {     let sum = i * j     print("\(i)*\(j)=\(sum)")    }}

2. 製作九九乘法表畫面

let width = view.frame.width / 10var x: CGFloat = 20for Horizontal in 1...9 {var y: CGFloat = 20for straight in 1...9 {//產生多個labellet label = UILabel(frame: CGRect(x: x, y: y, width: 30 , height: 30))if  Horizontal != 0, straight == 0 {label.text = "\(Horizontal)"}else if Horizontal == 0, straight != 0 {label.text = "\(straight)"}else{label.text = "\(straight*Horizontal)"}label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中view.addSubview(label)y = y + width}x = x + width}

3.某些 label 顯示特別的顏色 。第一排和第一列的 label 文字粗體。

//title設粗體self.navigationController?.navigationBar.titleTextAttributes = [NSAttributedString.Key.font:UIFont.boldSystemFont(ofSize: 20)]let width = view.frame.width / 10var x: CGFloat = 5for Horizontal in 0...9 {var y: CGFloat = 90for straight in 0...9 {//產生多個labellet label = UILabel(frame: CGRect(x: x, y: y, width: 30 , height: 30))if Horizontal == 0 , straight == 0 {label.text = "X"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else if  Horizontal != 0, straight == 0 {label.text = "\(Horizontal)"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else if Horizontal == 0, straight != 0 {label.text = "\(straight)"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else{label.text = "\(straight*Horizontal)"label.font = UIFont.systemFont(ofSize: 17)label.textAlignment = .center //文字置中}if  (Horizontal > 1 && Horizontal < 5 && Horizontal+straight == 10) || (Horizontal >= 5 && Horizontal == straight && Horizontal != 9)  {label.backgroundColor = UIColor.systemPink} else if straight == 9 ,Horizontal % 2 != 0 {label.backgroundColor = UIColor.orange} else if straight == 9 , Horizontal != 0 , Horizontal % 2 != 1{label.backgroundColor = UIColor.systemBlue}view.addSubview(label)y = y + width}x = x + width}

4.加上 slider 控制數量

sender.value = sender.value.rounded()let number = Int(sender.value)shownumber.text = "\(number)乘\(number)"let width = view.frame.width / 10var x: CGFloat = 5for Horizontal in 0...number {var y: CGFloat = 90for straight in 0...number {//產生多個labellet label = UILabel(frame: CGRect(x: x, y: y, width: 30 , height: 30))if Horizontal == 0 , straight == 0 {label.text = "X"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else if  Horizontal != 0, straight == 0 {label.text = "\(Horizontal)"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else if Horizontal == 0, straight != 0 {label.text = "\(straight)"label.font = UIFont.boldSystemFont(ofSize: 17) //文字粗體label.textAlignment = .center //文字置中}else{label.text = "\(straight*Horizontal)"label.font = UIFont.systemFont(ofSize: 17)label.textAlignment = .center //文字置中}if  (Horizontal > 1 && Horizontal < 5 && Horizontal+straight == 10) || (Horizontal >= 5 && Horizontal == straight && Horizontal != 9)  {label.backgroundColor = UIColor.systemPink} else if straight == 9 ,Horizontal % 2 != 0 {label.backgroundColor = UIColor.orange} else if straight == 9 , Horizontal != 0 , Horizontal % 2 != 1{label.backgroundColor = UIColor.systemBlue}view.addSubview(label)y = y + width}x = x + width}

成果

--

--