#ios #objective-c #uitableview
#iOS #objective-c #uitableview
Вопрос:
Я создаю xib file
и добавляю Collection View Cell
. Я добавляю индикатор выполнения в заголовочный файл ячейки, как в следующем коде.
#import <UIKit/UIKit.h>
#import "MobileVLCKit/VLCMediaThumbnailer.h"
@interface AITFileCell_grid : UICollectionViewCell <VLCMediaThumbnailerDelegate>
@property (strong, nonatomic) IBOutlet UIImageView *fileIcon;
@property (strong, nonatomic) IBOutlet UILabel *fileName;
@property (strong, nonatomic) IBOutlet UILabel *fileSize;
@property (strong, nonatomic) NSURL *filePath ;
(NSString *)reuseIdentifier ;
@end
@interface AITFileCell_grid()
{
BOOL fetching ;
@public
UIProgressView *dlProgress;
UILabel *dlProgressLabel;
}
@end
Я также создаю другую xib file
и добавляю Collection View
для загрузки Collection View Cell
.
Я хочу выбрать несколько файлов и скрыть progress bar
их на каждом cell
button
.
Но я не могу получить ячейку, когда нажимаю кнопку удаления, следуя следующему коду.
- (IBAction) buttonCancel:(id)sender {
if(self.collectionView.indexPathsForSelectedItems > 0){
for(NSIndexPath *indexPath in self.collectionView.indexPathsForSelectedItems){
AITFileCell_grid *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"AITFileCell_grid" forIndexPath:indexPath];
//Hide the progress bar
cell->dlProgressLabel.text = @"0%";
cell->dlProgress.hidden = YES;
cell->dlProgressLabel.hidden = YES;
}
}
[self setEditing:NO animated:YES];
}
Я установил точку останова на cell->dlProgressLabel.text = @"0%";
, она отображается nil
в журнале … и индикатор выполнения ничего не изменил.
Но я могу установить значение cell->dlProgressLabel.text
и установить значение cell->dlProgress
в NSTimer
.
Почему cell
определение в UIButton
кажется неэффективным ?…
Может кто-нибудь помочь и научить меня, как решить?
Ответ №1:
Вы удаляете Cell
из очереди, выполняя
AITFileCell_grid *cell = [self.collectionView dequeueReusableCellWithReuseIdentifier:@"AITFileCell_grid" forIndexPath:indexPath];
что может отличаться от того, что вы выбрали, вместо этого получите выбранную ячейку из CollectionView
AITFileCell_grid *cell = [self.collectionView cellForItemAtIndexPath: indexPath]