[swift] 코드로 화면을 구현할 때 자주 사용하는 부품을 모델로 정의해 보았습니다.

11984 단어 Swift4

소개



스토리보드를 사용하지 않고 화면을 실장할 때, 로고 등의 자주 사용하는 부품을 이렇게 매번 기술하고 있으면, 가독성 나빠지고 copipe하는 수고도 걸리므로 싫다고 생각해 컴퍼넌트화해 보겠습니다 했다.

로고를 구현할 때 매번 같은 코드를 작성하는 것이 좋지 않습니까?



이것을 매번 쓴다니 비효율적인・・・

viewController.swift
import UIKit

class ViewController: UIViewController {
    //最初のページ

    var logoLabel: UILabel!

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.white

        //ロゴ的な
        logoLabel = UILabel()
        logoLabel.text = "栞の森"
        logoLabel.textColor = UIColor.white
        logoLabel.font = UIFont(name: "Arial", size: 20)
        if #available(iOS 11.0, *) {
          logoLabel.frame = CGRect(x: 20, y: 40, width: self.view.frame.width / 6, height: self.view.frame.height / 20)
        }else{
             logoLabel.frame = CGRect(x: 20, y: 20, width: self.view.frame.width / 6, height: self.view.frame.height / 20)
        }
        let logoBackColor = #colorLiteral(red: 0, green: 0.6670674086, blue: 0.6729698777, alpha: 1)
        logoLabel.backgroundColor = logoBackColor
        self.view.addSubview(logoLabel)

        // Do any additional setup after loading the view, typically from a nib.
    }
}

거기서 컴퍼넌트화해 일행으로 로고를 구현할 수 있도록 하자!



모델 파일을 만들고 로고를 설정하는 함수를 정의합니다.

LogoComponent.swift
import UIKit

class LogoComponent: NSObject {
  static let shared = LogoComponent()

  func setLogo(myView: UIView){
    //ロゴ的な
    let logoLabel = UILabel()
    logoLabel.text = "栞の森"
    logoLabel.textColor = UIColor.white
    logoLabel.font = UIFont(name: "Arial", size: 20)
    if #available(iOS 11.0, *) {
      logoLabel.frame = CGRect(x: 20, y: 40, width: myView.frame.width / 6, height: myView.frame.height / 20)
    }else{
      logoLabel.frame = CGRect(x: 20, y: 20, width: myView.frame.width / 6, height: myView.frame.height / 20)
    }
    let logoBackColor = #colorLiteral(red: 0, green: 0.6670674086, blue: 0.6729698777, alpha: 1)
    logoLabel.backgroundColor = logoBackColor
    myView.addSubview(logoLabel)
  }
}

ViewController에서 사용

ViewController.swift
import UIKit

class ViewController: UIViewController {
    //最初のページ


    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.backgroundColor = UIColor.white
        //なんと一行でロゴが実装できます。
        LogoComponent.shared.setLogo(myView: self.view)

        // Do any additional setup after loading the view, typically from a nib.
    }
}




※ 참고로이 방법이라면 viewController에서 로고를 괴롭히고 싶을 때
참조 할 수 없기 때문에주의

끝에



프로그래밍 초보자의 연극이므로 참고 정도로
또한 뭔가 이상할 때는 걱정하지 말고 의견으로 지적하십시오.
그 쪽이 투고자는 기뻐하기 때문에

좋은 웹페이지 즐겨찾기