我的UITtableView在IOS 7上表现得很奇怪,它在IOS 6上工作正常。当使用搜索栏过滤单元格时,它看起来好像有一个单元格叠加在一起。我不知道如何用文字表达,但这里是图像
在IOS 7上
在IOS 6上
#pragma mark - Table view data source
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (tableView == self.tableView)
{
return [self.airportArray count];
}
else
return [filterArray count];
}
- (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];
cell.backgroundColor=[UIColor whiteColor];
}
NSMutableDictionary *cDict;
if (tableView == self.tableView)
{
cDict = [self.airportArray objectAtIndex:indexPath.row];
}
else
{
cDict = [filterArray objectAtIndex:indexPath.row];
}
cell.textLabel.text = [cDict objectForKey:@"code4"];
return cell;
}
#pragma mark - Table view delegate
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
NSMutableDictionary *cDict;
if (tableView == self.tableView) {
cDict = [self.airportArray objectAtIndex:indexPath.row];
}
else {
cDict = [filterArray objectAtIndex:indexPath.row];
}
if (_currentTextField == _viewController.diversion1TextField) {
[_viewController setChooseAirport1:cDict];
}
else if (_currentTextField == _viewController.diversion2TextField)
{
[_viewController setChooseAirport2:cDict];
}
}
答案 0 :(得分:2)
我讨厌链接到一个网站作为答案,但这是iOS 7.0上popover UISearchDisplayerControllers中的一个错误。
Peter Steinberger在这里记录得非常好:Fixing UISearchDisplayController on iOS 7
答案 1 :(得分:0)
你只需删除 [tableView dequeueReusableCellWithIdentifier:CellIdentifier]的评论;
所以你的代码看起来像
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
....
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
....
}
并且仍然无效,请查看http://sdrv.ms/IRaf5a
中的代码