보기 컨트롤러의보기에 사용자 지정 하위보기 (xib에서 생성됨) 추가-내가 뭘 잘못하고 있니?
xib에서보기 (활동 표시기, 진행률보기 및 레이블 포함)를 만들었습니다. 그런 다음 .h / .m 파일을 만들었습니다.
#import <UIKit/UIKit.h>
@interface MyCustomView : UIView {
IBOutlet UIActivityIndicatorView *actIndicator;
IBOutlet UIProgressView *progressBar;
IBOutlet UILabel *statusMsg;
}
@end
#import "MyCustomView.h"
@implementation MyCustomView
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
// Initialization code
}
return self;
}
- (void)dealloc {
[super dealloc];
}
@end
IB에서 파일 소유자를 설정하고 ID를 MyCustomView로보고 IBOutlet을 파일 소유자에 연결합니다.
MyViewController.m에서 다음을 수행했습니다.
- (void)viewDidLoad {
[super viewDidLoad];
UIView *subView = [[MyCustomView alloc] initWithFrame:myTableView.frame];
[subView setBackgroundColor:[UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.5]];
[myTableView addSubview:subView];
[subView release];
}
앱을 실행하면보기가 추가 언어 레이블, 진행률 표시 줄 및 활동 내용이 보이네요.
내가 도대체 뭘 잘못하고있는 겁니까?
-loadNibNamed
메소드를 사용하여로드해야합니다 . -initWithNibName
UIViewControllers 전용입니다.
MyCustomView init 메서드에 다음 코드를 추가합니다.
NSArray *subviewArray = [[NSBundle mainBundle] loadNibNamed:@"MyCustomView" owner:self options:nil];
UIView *mainView = [subviewArray objectAtIndex:0];
[self addSubview:mainView];
펜촉에서 객체를 초기화하는 경우 초기화를 호출 - (id)initWithCoder:(NSCoder *)aDecoder
하므로 펜촉 내에 MyCustomView 객체를 생성하는 경우이를 재정의해야합니다. 을 사용하여 수행하는 경우이를 initWithFrame:
재정의하고 위의 코드를 추가하십시오. 또한 펜촉에 최상위 UIView가 하나 있는지 확인하고 그 안에 다른 모든 요소를 배치하십시오 (subviewArray에 항목이 하나만 있는지 확인).
이것은 펜촉에서 뷰를로드하여 객체에 추가하고 트릭을 수행해야합니다.
이 방법을 사용해야한다고 생각합니다.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil;
이는 "nibNameOrNil"에 .xib 파일 이름을 전달해야하기 때문입니다.
hocker가 말했듯이 XIB 이름 (확장자없이)을 전달하는 방법을 사용해야합니다.
그런 다음이 목록을 제어해야합니다.
- IB에서 .xib 파일 열기
- 파일 소유자를 클릭하고 올바른 클래스 (귀하의 경우 MyCustomView)를 선택하십시오.
- 컨트롤을 누른 상태에서 파일 소유자에서보기로 드래그합니다 (이제보기에 대한 콘센트는 괜찮습니다).
작동하기를 바랍니다. 건배.
'ProgramingTip' 카테고리의 다른 글
특정에 있는지 확인 (0) | 2020.11.30 |
---|---|
IMG 태그와 함께 스프라이트를 사용하십니까? (0) | 2020.11.30 |
셸에서 여러 파일 이름 많이 (0) | 2020.11.30 |
JSON 객체를 JavaScript 배열로 변환하는 방법 (0) | 2020.11.30 |
Tesseract 실행 오류 (0) | 2020.11.30 |