【swift】分けたファイルからUIViewの追加は出来ないと思いこんでました | 30歳から始めたプログラミング

【swift】分けたファイルからUIViewの追加は出来ないと思いこんでました

今までメインのクラスからじゃないとビューを追加することは出来ないと思いこんでいましたが、呼び出すクラス側にメインのself.viewを引き継げば簡単にビューの操作できるんですね。

 

●ファイルを分けた別クラスの記述

class class2: NSObject {

    func test(main:UIView){

        let l = UILabel(frame: CGRectMake(0, 100, 100, 50));

        l.text = "テスト";

        main.addSubview(l)

    }

}

 

●メインのクラス

class ViewController: UIViewController {

    override func viewDidLoad() {

        super.viewDidLoad()

        

        let TestClass: class2 = class2()

        TestClass.test(self.view)

    }

}

 

 

こういうことに気付けるかどうかってもう本当にセンスですよね。こういうのって実はものすごく大事な事ですがプログラミング関連の本を読んでもまず書いてることはなくて自分で気づくか他人のコードをみて気づくか検索して地道に見つけるしか無いんですよね。

 

今回はたまたま検索エンジンに「addSubview ファイル分け」のワードで引っかかってくれましたが以前に検索したときは上記のワードが思いつかなくて見つけられず出来ないものだと思いこんでいました。

 

質問サイトで質問するという選択肢もありますが、答えが返ってこないことや何故か突然怒られた上に求めている事とは異なった回答が返ってくる事がよくあるのでついつい敬遠しがちです。それでも本来はすぐに質問したほうが合理的なんですけどね。

 

それはさておき、これで1ファイルのコード量を劇的に減らすことができそうです。ということでもうひと頑張りします!