커스텀 UIButton을 셋업하고 뷰를 한 번만 서브 뷰로 추가해야합니다. 구현 파일을 작게 유지하고 initWithFrame:
의 모든보기를 설정하여 누군가가 button = [[Button alloc] init]; button.frame = someFrame;
과 같은 작업을 수행하지 않도록하려면 다음을 수행합니다.layoutSubviews에서 dispatch_once를 사용하는 데 문제가 있습니까?
- (void)layoutSubviews
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[self setupViews];
});
}
- (void)setupViews
{
// add all subviews here
}
나는 내가 권장하지 않는 것을하고 있는지 궁금해하고있다. 이 질문을 더욱 확장하려면 dispatch_once
을 끊임없이 호출 할 방법에 포함시키는 것이 안전합니까? (예 : viewDidAppear
안의 설정 코드보기).
왜이 설정에'viewDidLoad'를 사용하지 않으시겠습니까? – bdesham
몇 개의 인스턴스가 있습니까? – Wain
@bdesham, viewDidLoad는 서브 클래 싱 된 UIButton이므로 사용할 수 없습니다. – Sid