Мне нужно реализовать индексирование списка abcd в приведенном ниже представлении таблицы справа. Когда я щелкаю по представлению таблицы a / b / c и т. Д., Нужно показать записи в соответствии с тем, что для сортировки , как в iphone контакты .Могу я знаю, что все
изменения, которые мне нужны для этого. Нужно создать разделы для этого? пожалуйста, кто-нибудь объяснить мне
любое решение.
У меня есть класс с именем " myClass ", который содержит свойства iD, name и imageURL.
URL-адрес изображения содержит URL-адрес фотолаборатории.
myClass.h
@interface myClass: NSObject {
NSInteger iD;
NSString *name;
NSString *imageURL;
}
@property (nonatomic, assign) NSInteger iD;
@property (nonatomic, assign) NSString *name;
@property (nonatomic, assign) NSString *imageURL;
myClass.m
@implementation myClass
@synthesize iD;
@synthesize name;
@synthesize imageURL;
@end
Итак, я добавил 50 деталей изображения с iD, name, imageURL в виде myClass объектов в NSMutableArray с именем * BundleImagesArray *
я отобразил его в виде таблицы. мой код:
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger) section {
//getting all image details with iD,name,imageURL as **myClass** objects
BundleImagesArray = [staticDynamicHandler getImageFromBundle];
int count = [BundleImagesArray count];
for (int i = 0; i<count; i++) {
//this array for easy scrolling after first time the table is loaded.
[imageCollectionArrays addObject:[NSNull null]];
}
return count;
}
cellForRowAtIndexPath
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
//removing all the subviews
if ([cell.contentView subviews]) {
for (UIView *subview in [cell.contentView subviews]) {
[subview removeFromSuperview];
}
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell setAccessoryType:UITableViewCellAccessoryNone];
myClass *temp = [BundleImagesArray objectAtIndex:indexPath.row];
//adding image view
UIImageView *importMediaSaveImage=[[[UIImageView alloc] init] autorelease];
importMediaSaveImage.frame=CGRectMake(0, 0, 200,135 );
[cell.contentView addSubview:importMediaSaveImage];
//adding image label
UILabel *sceneLabel=[[[UILabel alloc] initWithFrame:CGRectMake(220,0,200,135)] autorelease];
sceneLabel.font = [UIFont boldSystemFontOfSize:16.0];
sceneLabel.textColor=[UIColor blackColor];
[cell.contentView addSubview:sceneLabel];
sceneLabel.text = temp.name;
if([imageCollectionArrays objectAtIndex:indexPath.row] == [NSNull null]){
//getting photlibrary image thumbnail as NSDAta
NSData *myData = [self photolibImageThumbNailData::temp.imageURL]
importMediaSaveImage.image =[UIImage imageWithData:myData ];
[imageCollectionArrays replaceObjectAtIndex:indexPath.row withObject:importMediaSaveImage.image];
} else {
importMediaSaveImage.image = [imageCollectionArrays objectAtIndex:indexPath.row];
}
temp = nil;
return cell
}
* Примечание: *
я сделал это следующим образом
1. Количество разделов
внутри этого мы получаем массив меток, а затем вызываем метод countArrayWords, который будет считать слова и
алфавиты, начинающиеся с определенного слова.
2. Название заголовка в разделе
Используется для получения заголовков для разделов. В настоящее время мы не используем этот метод, так как он будет выглядеть не очень хорошо, когда мы имеем
нет данных в табличном представлении.
3. количество строк в разделе
в этом мы вызываем метод countArrayWords, если sectio = 0.
4. ячейка для строки в пути индекса
это метод, в котором мы вычисляем переменную, известную как h, с помощью которой мы привязываем изображения к таблице
Посмотреть.
Однако представление Tableview слишком медленное с 1000 изображений