0

我想绕过我的 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 的滚动变得非常缓慢。没有它,它就像一个魅力。

那么,如何使单元格角舍入并更快地设置边框宽度?

4

2 回答 2

1

我尝试了很多次以使其快速运行。但是当用于许多对象时,它的工作速度非常慢。

我可以推荐什么:

使用背景图片,不使用图层属性。例如看这里

或者使用 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];
}
于 2013-03-24T22:05:29.867 回答
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];
}
于 2013-03-24T22:31:07.997 回答