我想围绕我的tableview细胞的角落,使它们之间的差距更大。
我在cellForRowAtIndexPath中这样做:
static NSString* CellIdentifier = @"normal";
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil)
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
CALayer* layer = cell.layer;
[layer setCornerRadius:8.0f];
[layer setMasksToBounds:YES];
[layer setBorderWidth:2.0f];
通过调用setBorderWidth滚动tableview变得非常慢。没有它,它就像一个魅力。
那么,我怎样才能让细胞整理器变圆并更快地设置边框宽度?
答案 0 :(得分:1)
我尝试了很多次以使其快速工作。但是当用于许多物体时,它的工作效果非常慢。
我能提出什么建议:
要使用背景图像,请不要使用图层属性。以here为例
或者使用tableView样式 - UITableViewStyleGrouped
在您的情况下,表格视图中的对象可能不是很多,因此在创建单元格时设置边框会对其进行优化:
if(cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
CALayer* layer = cell.layer;
[layer setCornerRadius:8.0f];
[layer setMasksToBounds:YES];
[layer setBorderWidth:2.0f];
}
答案 1 :(得分:0)
不是每次都设置图层属性,而是在创建单元格时执行一次。
cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
if(cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
CALayer* layer = cell.layer;
[layer setCornerRadius:8.0f];
[layer setMasksToBounds:YES];
[layer setBorderWidth:2.0f];
}