UIView에서 수퍼 클래스로 분류 된 사용자 정의보기를 코코아 터치로 만들고 내 주 컨트롤러에서 기본보기로 만든 다음 기본보기에 하위보기로 추가합니다.하지만 추가 할 때 기본 뷰는 다시 initializer 메서드를 호출하고 무한 루프를 발생시킵니다. 사용자 정의보기를 잘못 작성하려고합니까? 다음은 MAINVIEWCocoa Touch : 사용자 정의보기 만들기 및 추가
- (void)loadView {
UIImage* tempImage = [UIImage imageNamed: @"image1.jpg"];
CustomImageContainer *testImage = [[CustomImageContainer alloc] initWithImage: tempImage andLabel: @"test image" onTop: true atX: 10 atY: 10];
[self.view addSubview: testImage];
}
과 CustomImageContainer입니다
-(CustomImageContainer *) initWithImage: (UIImage *)imageToAdd andLabel: (NSString *)text onTop: (BOOL) top atX: (int) x_cord atY: (int) y_cord{
UIImageView *imageview_to_add = [[UIImageView alloc] initWithImage: imageToAdd];
imageview_to_add.frame = CGRectMake(0, 0, imageToAdd.size.width, imageToAdd.size.height);
UILabel *label_to_add = [[UILabel alloc] init];
label_to_add.text = text;
label_to_add.alpha = 50;
label_to_add.backgroundColor = [UIColor blackColor];
label_to_add.textColor = [UIColor whiteColor];
[self addSubview: imageview_to_add];
self.frame = CGRectMake(x_cord, y_cord, imageToAdd.size.width, imageToAdd.size.height);
if (top) {
label_to_add.frame = CGRectMake(0, 0, imageview_to_add.frame.size.width, imageview_to_add.frame.size.height);
//[self addSubview: label_to_add];
}
else {
label_to_add.frame = CGRectMake(0,.2 * imageview_to_add.frame.size.height, imageview_to_add.frame.size.width, imageview_to_add.frame.size.height);
}
[self addSubview: label_to_add];
[super init];
return self;
}
Thansk 이것은 문제의 일부 였고, 다른 부분은 viewDidLoad가 아닌 loadView에 있었지만 엄청나게 감사했습니다. – AgentRegEdit