UITableView セクション ヘッダーのカスタム UIView (.h .m & .xib) を作成しようとしています。
目的は、次の行を使用して見出しのタイトルを渡すことができるようにすることです。
sectionHeaderView.sectionLabel.text = @"SOME TEXT";
ただし、これにより常に次のエラーが発生します。
[UIView sectionLabel]: unrecognized selector sent to instance 0x6d3f6f0
DUSettingsSectionView として宣言すると、これが UIView であると見なされるのはなぜですか? これがコードです。うまくいけば、誰かが私を正しい方向に向けることができます。
==== コード ====
私のUIViewControllerから
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section {
return 16;
}
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
DUSettingsSectionView *sectionHeaderView = [[DUSettingsSectionView alloc] init];
// sectionHeaderView.sectionLabel.text = @"SOME TEXT";
return sectionHeaderView;
}
DUSettingsSectionView.h から
#import <UIKit/UIKit.h>
@interface DUSettingsSectionView : UIView {
UILabel *sectionLabel;
}
@property (nonatomic, strong) IBOutlet UILabel *sectionLabel;
@end
DUSettingsSectionView.m から
#import "DUSettingsSectionView.h"
@implementation DUSettingsSectionView
@synthesize sectionLabel;
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
NSArray *nibArray = [[NSBundle mainBundle] loadNibNamed:@"DUSettingsSectionView" owner:self options:nil];
self = [nibArray objectAtIndex:0];
}
return self;
}
@end
sectionLabel は .xib 内で完全に接続され、.xib は DUSettingsSectionView クラスに設定されます。