[swift] 코드로 화면을 구현할 때 자주 사용하는 부품을 모델로 정의해 보았습니다.
11984 단어 Swift4
소개
스토리보드를 사용하지 않고 화면을 실장할 때, 로고 등의 자주 사용하는 부품을 이렇게 매번 기술하고 있으면, 가독성 나빠지고 copipe하는 수고도 걸리므로 싫다고 생각해 컴퍼넌트화해 보겠습니다 했다.
로고를 구현할 때 매번 같은 코드를 작성하는 것이 좋지 않습니까?
이것을 매번 쓴다니 비효율적인・・・
viewController.swiftimport 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.swiftimport 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.swiftimport 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에서 로고를 괴롭히고 싶을 때
참조 할 수 없기 때문에주의
끝에
프로그래밍 초보자의 연극이므로 참고 정도로
또한 뭔가 이상할 때는 걱정하지 말고 의견으로 지적하십시오.
그 쪽이 투고자는 기뻐하기 때문에
Reference
이 문제에 관하여([swift] 코드로 화면을 구현할 때 자주 사용하는 부품을 모델로 정의해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/maedakei0817/items/5dd3314d3bbe8759a0fd
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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.
}
}
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)
}
}
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.
}
}
프로그래밍 초보자의 연극이므로 참고 정도로
또한 뭔가 이상할 때는 걱정하지 말고 의견으로 지적하십시오.
그 쪽이 투고자는 기뻐하기 때문에
Reference
이 문제에 관하여([swift] 코드로 화면을 구현할 때 자주 사용하는 부품을 모델로 정의해 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/maedakei0817/items/5dd3314d3bbe8759a0fd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)