【发布时间】:2014-03-10 11:32:13
【问题描述】:
在我的应用程序的主页中,我有一个滚动图像的 iCarousel 对象。在这下面有一个UITableView - 表格视图是问题所在。
最近我在表格视图中为每个cell 添加了一个SevenSwitch 对象,从那时起滚动滞后很多!这是我在tableView:cellForRowAtIndexPath:方法中添加的代码:
cella.subscribed = [[SevenSwitch alloc] initWithFrame:CGRectMake(cella.frame.size.width-60, cella.frame.size.height / 2 - 12, 50, 25)];
cella.subscribed.offImage = [UIImage imageNamed:@"off.png"];
cella.subscribed.onImage = [UIImage imageNamed:@"on.png"];
cella.subscribed.thumbTintColor = [UIColor colorWithRed:(230/255.0) green:(230/255.0) blue:(230/255.0) alpha:1];
cella.subscribed.activeColor = [UIColor colorWithRed:(204/255.0) green:(204/255.0) blue:(204/255.0) alpha:1];
cella.subscribed.inactiveColor = [UIColor colorWithRed:(204/255.0) green:(204/255.0) blue:(204/255.0) alpha:1];
cella.subscribed.onTintColor = [UIColor colorWithRed:(204/255.0) green:(204/255.0) blue:(204/255.0) alpha:1];
cella.subscribed.isRounded = NO;
cella.subscribed.tag = [[tempCat objectForKey:@"Id"] intValue];
[cella.subscribed addTarget:self action:@selector(changeSingleCategory:) forControlEvents:UIControlEventValueChanged];
if ([[tempCat objectForKey:@"Subscribed"] isEqualToString:@"Y"]) {
cella.subscribed.on = YES;
} else {
cella.subscribed.on = NO;
}
[cella.contentView addSubview:cella.subscribed];
有没有一种方法可以创建自定义对象而无需每次都设置所有属性?
【问题讨论】:
-
您是否进行了分析以找出导致延迟的原因?
-
我很确定 SevenSwitch 会导致滞后,因为如果我从任何单元格中删除它,滞后就会消失......
-
您需要进行分析才能准确了解它是什么。你总是重新创建开关吗?只有在创建单元格时才应创建开关...
-
是的,我总是重新创建开关...
-
我第一次向下滚动表格视图时,它没有任何延迟。当我反复上下滚动我的表格视图时,延迟就开始了。
标签: uitableview lag reusability uiswitch