【发布时间】:2015-02-22 01:03:44
【问题描述】:
我一直在推迟多年的一个非常重要的宠物项目的开发即将结束,而且我遇到了一个更更重大的问题遇到一些额外的功能。
在这个应用程序中,我有一个 UITableView,它有一个带有 UIScrollView 的自定义单元格。在这个滚动视图中,我用一个数组的内容动态地填充它。虽然我让这个工作完美(ish),但它带来了一个意想不到的副作用:每当滚动表格时,UIScrollViews 不会像我期望的那样刷新,并且会在自己内部生成更多的 UILabel。强>
Here 你可以看到带有 UIScrollViews 的 UITableViewCell,here 你可以看到在表格中滚动一次后会发生什么。不言而喻,但更多的滚动会导致效果恶化,最终内存使用变得不可持续,而用户体验......好吧,我称之为体验。
有问题的代码如下,它在 tableView:cellForRowAtIndexPath: 方法中。
int stopCount = (int)[[busStop valueForKey:@"Stop Times"] count];
int horizontalSpacing = 0;
for (int i = 0; i < stopCount; i++) {
UILabel *timeLabel;
if (!timeLabel) {
timeLabel = [[UILabel alloc] initWithFrame:CGRectMake(horizontalSpacing, 0, 75, 20)];
timeLabel.text = [[busStop valueForKey:@"Stop Times"] objectAtIndex:i];
timeLabel.font = [UIFont fontWithName:@"HelveticaNeue-Light" size:17.0];
horizontalSpacing += timeLabel.bounds.size.width;
[cell.stopTimesView addSubview:timeLabel];
}
}
cell.stopTimesView.contentSize = CGSizeMake(horizontalSpacing, 20);
我怀疑这既不是填充滚动视图的时间,也不是填充滚动视图的位置,但我不知道放置它的更合适的位置是什么(也许是自定义单元类方法?)。
我非常感谢任何人可以就此事提供的任何和所有帮助。
【问题讨论】:
标签: ios objective-c iphone uitableview uiscrollview