我成功創建了具有3個標籤的自定義UICollectionViewCell。繼承自定義的UICollectionViewCell
現在我想要繼承它,添加dateToDisplay屬性,並在setDateToDisplay中更改標籤的字符串(使用自定義日期格式化程序)。 parentCell的
創建和使用:
ParentCellIdentifier.h
static NSString *ParentCellIdentifier = @"ParentCellIdentifier";
@interface ParentCell : UICollectionViewCell
@property (strong, nonatomic) IBOutlet UILabel *firstLabel;
@property (strong, nonatomic) IBOutlet UILabel *secondLabel;
@property (strong, nonatomic) IBOutlet UILabel *thirdLabel;
-(void)setupDefaults;
@end
在parentCell.xib:
類設置爲ParentCell
和標識設置爲ParentCellIdentifier
在視圖控制器我有UICollectionView
:
-(void)setupCollectionView {
[_daysCollectionView registerNib:[UINib nibWithNibName:@"ParentCell" bundle:nil] forCellWithReuseIdentifier:ParentCellIdentifier];
_daysCollectionView.delegate = self;
_daysCollectionView.dataSource = self;
_daysCollectionView.backgroundColor = [UIColor clearColor];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
ParentCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ParentCellIdentifier forIndexPath:indexPath];
cell.firstLabel.text = @"first";
cell.secondLabel.text = @"second";
}
上述設置的工作就像一個魅力。 不,我要添加ChildCell,使用相同的廈門國際銀行如以前:
@interface ChildCell : ParentCell
@property (nonatomic, strong) NSDate* dateToDislpay;//labels of parentCell updated using dateformatters on setDateToDisplay:
@end
-(void)setupCollectionView
離開一樣,註冊ParentCell.xib爲ParentCellIdentifier
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
ChildCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:ParentCellIdentifier forIndexPath:indexPath];
NSDate* date = [_dates objectAtIndex:indexPath.row];
cell.dateToDislpay = date; //here goes the error
當嘗試設置的子單元的屬性,崩潰。這是正確的,因爲在單元的ParentCell.xib類中是ParentCell。 在xib中更改類後,它可以正常工作,但是我想在xib中使用父類,因爲我將使用相同的xib,但僅適用於不同的格式化程序。
我該怎麼辦?
EDIT1: 崩潰收到:
-[ParentCell setDateToDislpay:]: unrecognized selector sent to instance
什麼是崩潰,請張貼錯誤 –
添加編輯:它無法識別的選擇發送到實例。 – izik461