我有两个视图,每个视图都包含一个tableview。除高度外,它们在各方面都相同。它们每个都在我的核心数据存储中从同一个实体(当前充满乱码)提供数据。
其中一个在滚动时完美运行,另一个表现不同。问题是单元格滚过顶部标题。成功的部分标题会按预期的方式将旧版本标题提升,标题标题会随着单元格一起向上滑动。
以下是一些截图,我希望能够说明这个问题:
首先,正常工作:
" A"是顶部标题,单元格不会滚过它。
接下来的两个镜头是桌面视图,表现得非常奇怪。我添加了一些箭头来显示正在发生的事情:
我已经比较了属性检查器中的设置,除非我忽略了某些内容,否则它们看起来完全相同。
有人有什么想法吗?
谢谢!
修改
这里是来自关联的UIViewController的代码,它是委托和TableView的数据源:
//
// AvsAViewController.m
// WMDGx
//
// Created by Tim Jones on 2/6/14.
// Copyright (c) 2014 TDJ. All rights reserved.
//
#import "AvsAViewController.h"
@interface AvsAViewController ()
{
NSFetchedResultsController *frc;
}
@end
@implementation AvsAViewController
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
// Custom initialization
}
return self;
}
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self refreshData];
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return [[frc sections] count];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
id<NSFetchedResultsSectionInfo> sectionInfo = [[frc sections] objectAtIndex:section];
return [sectionInfo numberOfObjects];
}
// Customize the appearance of table view cells.
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
// Configure the cell to show the activity's name
ListActivity *thisActivity = [frc objectAtIndexPath:indexPath];
cell.textLabel.text = thisActivity.activityName;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"aVSaCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
[self configureCell:cell atIndexPath:indexPath];
cell.textLabel.textColor = [UIColor redColor];
NSAttributedString *attString;
attString = cell.textLabel.attributedText;
return cell;
}
// Section Label
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSString *sectionLabel = [[[frc sections] objectAtIndex:section]name];
return [sectionLabel uppercaseString];
}
-(void) refreshData
{
//This was the turning point for proper MR grouping. The two Properties (activityCategory and activityName) are used as Sort descriptors in the underlying core data methods
frc = [ListActivity MR_fetchAllSortedBy:@"activityCategory,activityName"
ascending:YES withPredicate:nil
groupBy:@"activityCategory"
delegate:nil];
[self.myTableView reloadData];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
答案 0 :(得分:0)
确保在Property Inspector中为UITableView
选择了“剪辑子视图”,并且代码中某个地方的clipsToBounds
表未设置为NO
。
答案 1 :(得分:0)
我通过简单地删除TableView并拖入一个新的问题解决了这个问题,并将其连接起来。因此问题是固定的,但我不知道是什么导致了这个问题。
感谢评论的@drhr和其他所有看过的人!
修改强>
只是想知道是否有其他人遇到过这个问题。我只是在另一个tableview上重复它,并且必须如上所述解决它。 FWIW,我正在使用Xcode 5,开发iPhone应用程序。
我觉得固定很好,但实际上知道导致问题的原因会很好。