我遇到了tableview和自定义单元格的问题。
我有以下代码:
- (void)viewDidLoad {
[super viewDidLoad];
}
// =================================================================================================
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
// =================================================================================================
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
// =================================================================================================
// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"MyCustomCell";
MyCustomCell *cell = (MyCustomCell*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
UIViewController *c = [[UIViewController alloc] initWithNibName:CellIdentifier bundle:nil];
cell = (MyCustomCell*)c.view;
[c release];
}
return cell;
}
- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomCell* theCell = (MyCustomCell*)cell;
theCell.theTextView.text = @"Label My Label";
}
// =================================================================================================
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 100; // -- In fact it's dynamic
}
使用该代码,我在模拟器上有一个奇怪的行为(iOS 4.2)。 我只有一个单元格(分组tableview)。当我滚动列表以使单元格在屏幕顶部消失时,然后当我释放它时,而不是仅仅平滑地向下滚动,列表突然重新出现在屏幕上,好像我从未滚动它然后滚动一点点(大约25px,实际上是我的TextView的顶部)到顶部。
如果我删除或评论theCell.theTextView.text = @“Label My Label”;那么列表就像往常一样没有问题。如果我只向上滚动一点,那么问题就不存在,因此细胞不会消失。如果我有很多行并让第一个单元格超过顶部,问题就是一样。
TextView位于UITableCellView内部,textview足够大,可以将texte显示为单行文本。
你能看出问题出在哪里吗?
如果您没有答案,请发表评论以询问其他信息或仅提出建议,让其他人看到此问题尚无答案。
感谢您的帮助。
答案 0 :(得分:0)
问题在于"滚动已启用"未设置TextView的属性。将此属性设置为" ON"而问题已经消失......