사용자 정의 보기 높이 변경 (주로 constraints)

2841 단어 XcodeSwiftiOS
사용자 정의 보기로 UIVIew를 만들고 싶을 때 방법을 생각해 보세요.

준비할 파일

  • storyboard(가명: Main.storyboard)
  • viewController.swift(가명: MainViewController.swift)
  • view.swift(가명: CustomView.swift)
  • view.xib(가명: CustomView.xib)
  • 각 파일의 컨텐트


    MainViewController.swift
    class MainViewController: UIViewController {
    
        @IBOutlet weak var customView: customView!
    
        override func viewDidLoad() {
            super.viewDidLoad()
            customView.set()
            print("ViewControllerのviewDidLoad")
            print(customView.frame)
        }
    
        override func viewWillAppear(animated: Bool) {
            print("ViewControllerのviewWillAppear")
            print(customView.frame)
    
        }
    }
    
    CustomView.swift
    class ChildInfoView: UIView {
        @IBOutlet weak var xxxLabel: UILabel!    
    
        override init(frame: CGRect) {
            super.init(frame: frame)
            self.xibSetup()
        }
    
        required init?(coder aDecoder: NSCoder) {
            super.init(coder: aDecoder)
            self.xibSetup()
        }
    
        func set(){
            xxxLabel.text = "hoge"
        }
    
        private func xibSetup() {
            let view = NSBundle.mainBundle().loadNibNamed("CustomView", owner: self, options: nil).first as! UIView
            view.frame = self.bounds
            view.autoresizingMask = [UIViewAutoresizing.FlexibleWidth, UIViewAutoresizing.FlexibleHeight]
    
            print("CustomView.swiftのinit内")
            print(frame)
    
            self.addSubview(view)
        }
    
    

    미리 준비하다

  • storyboard에 viewController를 설치하고 클래스 이름을viewController로 지정합니다
  • viewController에view를 배치하고 클래스 이름을CustomView로 지정합니다
  • 정답의 constraints 설정

  • UIVIew의height>=10,priority=1000
  • UIVIew의height=10,priority=750
  • ※ 10은 스토리보드의 외관입니다.1 이상이면 뭐든지 가능합니다.

    각 위치의 프레임 값

    CustomView.swiftのinit内
    (0.0, 20.0, 375.0, 10.0)
    
    ViewControllerのviewDidLoad
    (0.0, 0.0, 40.0, 10.0)
    
    ViewControllerのviewWillAppear
    (0.0, 0.0, 375.0, 90.0)
    

    실패한 constraints 설정

  • UIVIew의 height=80,priority=1000

  • 각 위치의 프레임 값

    CustomView.swiftのinit内
    (0.0, 20.0, 375.0, 80.0)
    
    ViewControllerのviewDidLoad
    (0.0, 0.0, 40.0, 80.0)
    
    ViewControllerのviewWillAppear
    (0.0, 0.0, 375.0, 80.0)
    

    결론


    height의priority=1000은>=xx
    height=xx는 priority=750
    에서 기술한 장면은 다음과 같은 절차를 이용하여 명세표를 작성하여 개념 디자인에서 체량의 부피를 분석하도록 한다.

    좋은 웹페이지 즐겨찾기