當我在TableView中設置原型單元格的標識符時,我陷入了一個問題,故事板無法編譯。我認爲我已經完成了一切,擴展了UITableViewCell
並在該類中創建了IBOutlets,爲我的TableView創建了一個DataSource和Delegate,並實現了必要的方法和所有內容。當原型單元格的標識符設置時,故事板編譯失敗
我的單元有4個UIImages,有8個UILabels和1個UIButton。當我全部刪除它們時,故事板會用標識符編譯。但是,它並不是出現這些組件。令人驚訝的是,它編譯了這四個中的兩個UIImage,並且不會編譯其他任何內容。另外,如果我刪除了爲IBOutlets創建的所有UI項目,它並不會失敗。一旦它們全部被刪除,那些沒有IBOutlet的東西就會出現在表格中,但是執行並不在VenueCardCell
類中。
我注意到失敗並不取決於我的VenueCardCell
類的存在。即使該類不存在,它也會失敗。
在所有情況下,當我沒有爲原型單元格設置標識符時,所有內容都會編譯。但是桌子上什麼都沒有顯示出來。事實上,即使編譯時,表中也沒有顯示出來。
我不明白我在這裏做錯了什麼。請幫忙!讓我知道你是否需要在這裏看到其他東西。
這是我的類,它擴展UITableViewCell
@interface VenueCardCell : UITableViewCell
@property (weak, nonatomic) IBOutlet UIImageView *vImage;
@property (weak, nonatomic) IBOutlet UIButton *favoriteButton;
@property (weak, nonatomic) IBOutlet UILabel *vnLabel;
@property (weak, nonatomic) IBOutlet UILabel *vaLabel;
@property (weak, nonatomic) IBOutlet UILabel *vdLabel;
@property (weak, nonatomic) IBOutlet UILabel *waitLabel;
@property (weak, nonatomic) IBOutlet UILabel *rwaitLabel;
@property (weak, nonatomic) IBOutlet UILabel *ratioLabel;
@property (weak, nonatomic) IBOutlet UILabel *fLabel;
@end
@implementation VenueCardCell
- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
// Initialization code
}
return self;
}
- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
[super setSelected:selected animated:animated];
// Configure the view for the selected state
}
@end
這是我的ViewController類 - (爲簡單起見,我已經硬編碼了一些值,所以我只能看到同一個小區的10倍)
@interface HomeViewController : UIViewController <UITableViewDataSource, UITableViewDelegate>
@property (weak, nonatomic) IBOutlet UITableView *tableView;
@end
@implementation HomeViewController
static NSString *CellIdentifier = @"VenueCard";
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSInteger numberOfRows = 10;
return numberOfRows;
}
- (VenueCardCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView registerClass:[VenueCardCell class] forCellReuseIdentifier:CellIdentifier];
VenueCardCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
return cell;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end