こんにちは、おーしまです。
最近、swiftの勉強を始めたのでご紹介していきます。
今回は、「SegmentedControl」を使った簡単なアプリを作成したので、それの紹介です。
画面中央にある「A 、B、C、D」と書かれた4つのボタンが「SegmentedControl」です。
アプリの内容としましては、「A 、B、C、D」のいずれかがタップされると、上の文字が「◯番目の◯が選ばれた」と表示します。そして下の「2番目を選択」ボタンを押すと、2番目のBが選択されるようになっています。
コード
import UIKit class ViewController: UIViewController { @IBOutlet weak var segumentedControll: UISegmentedControl! @IBOutlet weak var label: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. } @IBAction func selectedUIViewControl(_ sender: Any) { let num = segumentedControll.selectedSegmentIndex if let title = segumentedControll.titleForSegment(at: segumentedControll.selectedSegmentIndex) { label.text = "\(num + 1)番目の\(title)が選ばれた" } } @IBAction func sendedButton(_ sender: Any) { segumentedControll.selectedSegmentIndex = 1 } }
@IBOutletで「SegmentedControll」と「label」を定義しています。
@IBActionで、SegmentedControlが選択された際と、ボタンが押された際の動作を定義しています。
細かく見ていきましょう。
@IBAction func selectedUIViewControl(_ sender: Any) { let num = segumentedControll.selectedSegmentIndex if let title = segumentedControll.titleForSegment(at: segumentedControll.selectedSegmentIndex) { label.text = "\(num + 1)番目の\(title)が選ばれた" } }
こちらは、セグメントコントロールが選択された際の動作です。
「num」には、「segumentedControll.selectedSegmentIndex」で選択されている番号を取得し、代入しています。
「title」には、「segumentedControll.titleForSegment(at: segumentedControll.selectedSegmentIndex)」で選択されているセグメントのタイトル(中の文字)を取得し、代入しています。
それを、「 label.text = "\(num + 1)番目の\(title)が選ばれた"」で表示する流れになります。
「if」でタイトルを取得できた際に、表示するようにしています。
@IBAction func sendedButton(_ sender: Any) { segumentedControll.selectedSegmentIndex = 1 }
こちらは、ボタンが押された際の動作です。
「segumentedControll.selectedSegmentIndex = 1」で、2番目のマスを選択できます。今回は、マスが4つあるので左から「0、1、2、3」と言う風になっています。
今回はここまでです。
お疲れ様でした。