1. xib 컨트롤 만들기 및 코드 컨트롤 만들기 방법
//
- (instancetype)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
[self addGesture];
}
return self;
}
// 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에서 호출한다. 그러면 당신이 어떤 방식으로 컨트롤을 만들든지 코드가 작용할 수 있다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.