1. xib 컨트롤 만들기 및 코드 컨트롤 만들기 방법

1222 단어
  • 1.컨트롤이xib,storyboard에서 만들어지지 않았을 때 이 방법을 사용합니다
  • 
    //               
    - (instancetype)initWithFrame:(CGRect)frame
    {
    
        self = [super initWithFrame:frame];
        if (self) {
            [self addGesture];
        }
        return self;
    }
    
    
  • 컨트롤이xib,storyboard에서 만들어졌을 때 이 방법을 사용합니다.

  • // xib         self  self       nil
    - (instancetype)initWithCoder:(NSCoder *)aDecoder
    {
        if (self = [super initWithCoder:aDecoder]) {
                 [self addGesture];
        }
        return self;
    }
    /// xib         self  self          
    - (void)awakeFromNib
    {
        [super awakeFromNib];
        [self addGesture];
    }
    
         initWithCoder:      ,   :initWithCoder  -> awakeFromNib 
    
     
    
  • 요약

  • 1,viewDidLoad 이전에storyboard에서 만든 클래스이기 때문에 먼저 실행하고 initWithCoder,awakeFromNib 두 가지 방법으로 순서대로 갑니다
    2,viewDidLoad에 도착한 후 코드로 만든view를 실행하면 initWithFrame 방법만 갑니다
    최종 결론:
    1. initWithFrame은 순수 코드 생성 시 호출만 가능하며 xib이나storyboard와 관련이 없습니다.
    2. initWithCoder, awakeFromNib는xib,storyboard에서 만들 때 호출됩니다.
    3. 그래서 일반적으로 안전을 위해 컨트롤을 초기화하는 코드는 하나의 방법(내 위의 initViews 방법과 유사)에 적고 우리는 각각 initWith Frame과 initWith Coder에서 호출한다. 그러면 당신이 어떤 방식으로 컨트롤을 만들든지 코드가 작용할 수 있다.

    좋은 웹페이지 즐겨찾기