は私が値名前を持つテーブルビューを作成移入のUITableView
[{"id": 1,"Name": "Nodia","company": "WWW","position": "HR","email": "[email protected]","number": "33","photo": "image1.png"}, {"id": 2,"Name": "Nona ","company": "SSS","position": "Head of Department","email": "[email protected]","number": "5496","photo": "image2.png"}, {"id": 3,"Name": "David","company": "DDD","position": "Director","email": "[email protected]","number": "574","photo": "image3.png"},....]|
JSONデータを持っています。
Tableviewcontroller.h :
@interface CitiesViewController()
@property(nonatomic,strong)NSMutableArray *jsonArray
@property(nonatomic,strong)NSMutableArray *citiesArray;
-(void)retrieveData;
Tableviewcontroller.m :
@implementation CitiesViewController
@synthesize
citiesArray,jsonArray;
#pragma mark -
#pragma mark Class Methods
-(void)retrieveData
{
NSURL *url = [NSURL URLWithString:getDataURL];
NSData *data = [NSData dataWithContentsOfURL:url];
jsonArray = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
citiesArray =[[NSMutableArray alloc]init];
for (int i= 0; i<jsonArray.count; i++)
{
NSString *cID = [[jsonArray objectAtIndex:i] objectForKey:@"id"];
NSString *cName = [[jsonArray objectAtIndex:i] objectForKey:@"Name"];
NSString *cCompany = [[jsonArray objectAtIndex:i] objectForKey:@"company"];
NSString *cPosition = [[jsonArray objectAtIndex:i] objectForKey:@"position"];
NSString *cEmail = [[jsonArray objectAtIndex:i] objectForKey:@"email"];
NSString *cNumber = [[jsonArray objectAtIndex:i] objectForKey:@"number"];
NSString *cPhoto = [[jsonArray objectAtIndex:i] objectForKey:@"photo"];
NSURL *urlOne = [NSURL URLWithString:cPhoto];
// NSLog(@"%@",urlOne);
NSData *photoData = [NSData dataWithContentsOfURL:urlOne];
UIImage *imageOne = [[UIImage alloc] initWithData:photoData];
[citiesArray addObject:[[City alloc]initWithCityName:cName andCityState:cCompany andCityCountry:cEmail andCityPopulation:cPosition andCityID:cID andCityNumber:cNumber andCityPhoto: (UIImage *) imageOne]];
}
[self.tableView reloadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self retrieveData];
}
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return citiesArray.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath];
// Configure the cell...
City *cityob;
cityob=[citiesArray objectAtIndex:indexPath.row];
cell.textLabel.text=cityob.employeeName;
return cell;
}
すべてがfine.Cellはデータを示して動作します。しかし、問題は、TableViewのセクションおよびセクションインデックスタイトルのタイトルヘッダーを設定できないことです。セクションのアルファベット順のヘッダーが必要です。 データは動的な静的な解決策であるため問題には適していません。 like in this tutriole
ありがとうございます。私の悪い英語!
これはSwiftのコードですが、 'func tableView(tableView:UITableView、titleForHeaderInSection section:Int) - > String? {} 'はUITableViewDelegateの拡張です。参考までに[this](http://stackoverflow.com/a/15740781/3921490)をご覧ください。 – amagain
@amagain詳細はできる限り? –
@amagain - (NSStringの*)のtableView:(のUITableView *)のtableView titleForHeaderInSection:(NSInteger)セクション{ }が、私はあなたがこのようなものを使用しているため、アルファベット順 –