有時候需要用到城市列表,作爲地址選擇,所以寫了個demo。
核心代碼:
#pragma mark - 獲取城市數據
-(void)getCityData
{
NSString *path=[[NSBundle mainBundle] pathForResource:@"citydict"
ofType:@"plist"];
self.cities = [NSMutableDictionary dictionaryWithContentsOfFile:path];
[self.keys addObjectsFromArray:[[self.cities allKeys] sortedArrayUsingSelector:@selector(compare:)]];
//添加熱門城市
NSString *strHot = @"熱";
[self.keys insertObject:strHot atIndex:0];
[self.cities setObject:_arrayHotCity forKey:strHot];
}
#pragma mark - tableView
-(CGFloat)tableView:(UITableView *)tableView heightForHeaderInSection:(NSInteger)section
{
return 20.0;
}
-(UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
UIView *bgView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 20)];
bgView.backgroundColor = [UIColor lightGrayColor];
UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(13, 0, 250, 20)];
titleLabel.backgroundColor = [UIColor clearColor];
titleLabel.textColor = [UIColor blackColor];
titleLabel.font = [UIFont systemFontOfSize:12];
NSString *key = [_keys objectAtIndex:section];
if ([key rangeOfString:@"熱"].location != NSNotFound) {
titleLabel.text = @"熱門城市";
}
else
titleLabel.text = key;
[bgView addSubview:titleLabel];
return bgView;
}
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
{
return _keys;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
// Return the number of sections.
return [_keys count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
// Return the number of rows in the section.
NSString *key = [_keys objectAtIndex:section];
NSArray *citySection = [_cities objectForKey:key];
return [citySection count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
NSString *key = [_keys objectAtIndex:indexPath.section];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] ;
cell.backgroundColor = [UIColor clearColor];
cell.contentView.backgroundColor = [UIColor clearColor];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
[cell.textLabel setTextColor:[UIColor blackColor]];
cell.textLabel.font = [UIFont systemFontOfSize:18];
}
cell.textLabel.text = [[_cities objectForKey:key] objectAtIndex:indexPath.row];
return cell;
}
demo下載地址:點擊打開鏈接