海外の情報込み!GTA6サキドリ!

iOSアプリ開発日記【その4】

iOSアプリ開発日記【その4】

前回の記事

今回作成した画面がこちらです。ページの下の方にGIFもあります!

この画面を作成する上で勉強した項目がこちら。

  1. Object & Class
  2. UITextView
  3. Segmented Control
  4. UIColor

です。

iOSアプリ開発【Object & Class】

これは名前の通り、オブジェクトとクラスです。

まず情報を管理するクラスを

ViewController.swift

のほかにもう一つ作ります。

作り方は、File => New => File…を選んで

CocoaTouchClass

を選択し作成します。

このファイルに書くことは簡単です。ためしにファイル名を

Member.swift

としておきます。

そのファイルには以下のように書きます。

import Foundation

class Member{
    let name : String
    let profile : String
    
    init(memberName:String, memberProfile:String) {
        name = memberName
        profile = memberProfile
    }
}

このプログラムが行うのは、Memberというクラスを作り、nameとprofileという変数(例えるならば箱)を宣言し(ただし中身はまだない)、さらにinit()でオブジェクトを作る際のレシピのようなものを書いています。

これだけでは大したことはできません。もうひとつ新しいファイルを作りましょう。

そのファイルには以下のように記述します(ところどころ省略あり)

var list = [Member]()
    
    var memberList = [省略]
    
    var profileList = [省略]

    init(){
        
        for i in 0...8{
            list.append(Member(memberName: memberList[i],memberProfile:profileList[i]))
        }
        
    }

まず変数listをMemberクラスのオブジェクトとして宣言します。そして変数memberListにはメンバーの名前を、変数profileListにはメンバーのプロフィールをそれぞれ同じ順番で格納します。(順番を間違えると名前とプロフィールが一致しなくなるので注意です。)

最後にinit()でオブジェクト化したときの動作を記述します。この場合は全員のメンバーの名前とプロフィールをメンバーオブジェクトとしてすべて一つのリストに格納します。

それでこのファイルで行われることは以上です。

iOSアプリ開発【Segmented Control & UITextView & UIColor】

つぎに、メインのviewController.swiftで以下のように記述すれば終了です。

    @IBOutlet weak var profileInfo: UITextView! // UITextViewのoutlet接続をする
    
    @IBOutlet weak var chooseMember: UISegmentedControl! //UISegmentedControlのoutlet接続をする
    
    let memberInfos = showProfiles() //showProfilesクラスをオブジェクト化する

    @IBAction func nameChosen(_ sender: Any) { //UISegmentedControlをActionとしてoutlet接続をする
        switch chooseMember.selectedSegmentIndex //スイッチ文でセグメンテッドコントロールで選ばれたメンバーの数字を実行する
        {
        case 0:
            profileInfo.text = memberInfos.profileList[0]
            profileInfo.textColor = UIColor.red // UIColor.色 という方法でテキストの色を変化させることができる
        case 1:
            profileInfo.text = memberInfos.profileList[1]
            profileInfo.textColor = UIColor.black
        case 2:
            profileInfo.text = memberInfos.profileList[2]
            profileInfo.textColor = UIColor(hue: 79/360, saturation: 75/100, brightness: 80/100, alpha: 1.0) /* #9acd32 */
            //UIColor()でカラーコードを細かく選択することも可能
        case 3:
            profileInfo.text = memberInfos.profileList[3]
            profileInfo.textColor = UIColor(hue: 23/360, saturation: 29/100, brightness: 98/100, alpha: 1.0) /* #fbceb1 */
        case 4:
            profileInfo.text = memberInfos.profileList[4]
            profileInfo.textColor = UIColor(hue: 120/360, saturation: 40/100, brightness: 100/100, alpha: 1.0) /* #98ff98 */
        case 5:
            profileInfo.text = memberInfos.profileList[5]
            profileInfo.textColor = UIColor(hue: 350/360, saturation: 24/100, brightness: 100/100, alpha: 1.0) /* #ffc0cb */
        case 6:
            profileInfo.text = memberInfos.profileList[6]
            profileInfo.textColor = UIColor(hue: 197/360, saturation: 42/100, brightness: 92/100, alpha: 1.0) /* #87ceeb */
        case 7:
            profileInfo.text = memberInfos.profileList[7]
            profileInfo.textColor = UIColor(hue: 300/360, saturation: 100/100, brightness: 50/100, alpha: 1.0) /* #800080 */
        case 8:
            profileInfo.text = memberInfos.profileList[8]
            profileInfo.textColor = UIColor.blue
        default:
            break
        }
    }

これはとくにむずかしいことはありませんね。ただスイッチステートメントを使ってセグメンテッドコントロールを操作しているシンプルなコードです。

この画面をシミュレーターで動かすとこんな感じになります。

 

アプリ開発カテゴリの最新記事