看起來它沒有一個自定義單元類是不可能完成的。因爲我們沒有故事板原型單元格來爲過濾的表格視圖操作圖形,所以我們必須以編程方式創建單元格。爲此,我們需要一個自定義單元類和.m文件中的initWithStyle:方法,如下所示。 所以我創建了一個名爲的UITableViewCell的SelectionCell子類,並在IB分配的自定義單元格類SelectionCell類並創建IBOutlet中所有UI控件在我的自定義單元格成SelectionCell.h文件
@interface SelectionCell : UITableViewCell{
}
@property (strong, nonatomic) IBOutlet UIImageView *contactPictureID;
@property (strong, nonatomic) IBOutlet UILabel *contactName;
@property (strong, nonatomic) IBOutlet UILabel *emailAddress;
@property (strong, nonatomic) IBOutlet UIImageView *selectedEmailState;
@end
在initWithStyle
:方法,我不得不重新編程所有的UI控件,並將它們添加到內容查看爲子視圖:
// SelectionCell.m
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
self.selectionStyle = UITableViewCellSelectionStyleNone;
_contactPictureID = [[UIImageView alloc] initWithFrame:(CGRectMake(10, 14, 48, 48))];
_contactName = [[UILabel alloc] initWithFrame:(CGRectMake(66, 14, 201, 30))];
_contactName.font = [UIFont boldSystemFontOfSize:20];
_contactName.textAlignment = NSTextAlignmentLeft;
_emailAddress = [[UILabel alloc] initWithFrame:(CGRectMake(66, 41, 201, 21))];
_emailAddress.font = [UIFont systemFontOfSize:16];
_emailAddress.textAlignment = NSTextAlignmentLeft;
_selectedEmailState = [[UIImageView alloc] initWithFrame:(CGRectMake(275, 22, 32, 32))];
[self.contentView addSubview:_contactPictureID];
[self.contentView addSubview:_contactName];
[self.contentView addSubview:_emailAddress];
[self.contentView addSubview:_selectedEmailState];
}
return self;
}
現在我能夠實例我的自定義單元格。在cellForRowAtIndexPath方法中
static NSString *CellIdentifier = @"SelectionCell";
SelectionCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[SelectionCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; }
現在一切正常,因爲它應該是。
我知道,問題是當tableView == searchResultTableView,我必須創建一個自定義單元格來填充searchResultTableView單元格,但我沒有自定義類的UITableViewCell。 – Hadu