Я создал код в моей кнопке, чтобы переключаться между моим cell identifier
, который делает это довольно хорошо, но, очевидно, мне нужно было установить, а исходный идентификатор ячейки - маленький значок, так как я хочу удалить этот идентификатор ячейки и заменить его другим при нажатии кнопки. Мой текущий код выглядит следующим образом:Переключить кнопку размера ячейки, не меняя идентификатор ячейки UIViewController
GroupsViewController.m
#import "GroupsViewController.h"
#import "CustomCell.h"
@interface GroupsViewController()
{
NSArray *arrayOfImages;
NSArray *arrayOfDescriptions;
}
@end
@implementation GroupsViewController
{
NSString *reuseIdentifier;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[[self GroupsCollectionView]setDataSource:self];
[[self GroupsCollectionView]setDelegate:self];
reuseIdentifier= @"SmallIcon";
arrayOfImages = [[NSArray alloc]initWithObjects:@"?.png", nil];
arrayOfDescriptions = [[NSArray alloc]initWithObjects:@"?", nil];
}
-(NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
-(NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
return [arrayOfDescriptions count];
}
-(UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
CustomCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:reuseIdentifier forIndexPath:indexPath];
[[cell IconImage]setImage:[UIImage imageNamed:[arrayOfImages objectAtIndex:indexPath.item]]];
[[cell IconLabel]setText:[arrayOfDescriptions objectAtIndex:indexPath.item]];
return cell;
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
//Dispose of any resources that can be recreated.
}
- (IBAction)cellToggleAction:(id)sender {
if([reuseIdentifier isEqualToString:@"SmallIcon"])
[email protected]"ListView";
else if
([reuseIdentifier isEqualToString:@"ListView"])
[email protected]"LargeIcon";
else if
([reuseIdentifier isEqualToString:@"LargeIcon"])
[email protected]"SmallIcon";
[self.GroupsCollectionView reloadData];
}
@end
CustomCell.h
#import <UIKit/UIKit.h>
@interface CustomCell : UICollectionViewCell
@property (weak, nonatomic) IBOutlet UIImageView *IconImage;
@property (weak, nonatomic) IBOutlet UILabel *IconLabel;
@end
Я предполагаю, что его делать со мной установкой reuseIdentifier
в - (void)viewDidLoad
, так что я Жду» t получить любые ошибки, так что я не установил один, так что действительно, что я прошу, это способ установить начальный reuseidzntifier и заменить его будет следующим, когда я переключаюсь между нажатиями кнопки.
Также было бы полезно, если бы кто-то мог указать мне в правильном направлении, добавляя изображения значков к каждому щелчку кнопки.
Проблема возникает, когда я нажимаю кнопку, как показано на следующих изображениях, сами ячейки меняются, но исходный идентификатор ячейки остается помещенным.
Извините, но я своего рода новичок в этом и я только учусь в течение месяца, как именно бы я реализовать размер моего reuseIdentifiers в коде вы дали, и мне нужно, чтобы добавить этот код в мой файл viewController? Спасибо заранее. –
Ваши * reuseIdentifiers * в основном описывают, какую ячейку вы хотите отображать во время выполнения, правильно? Поэтому на основе этих повторных Идентификаторов вы можете возвращать разные размеры для разных ячеек. Проверьте обновленный ответ на образец кода. И Да, это будет добавлено в ваш 'GroupViewController.m' – UditS
Полностью отключен от темы, но вы не можете никоим образом направить меня в правильном направлении, как изменить значок кнопки на каждом щелчке, пожалуйста. много Спасибо заранее, и ваш код работал отлично! –