在分组TableView中访问UITableViewCell的角半径

时间:2012-10-25 12:32:41

标签: objective-c uiview uitableview cornerradius

似乎Apple将iOS6中的转角半径改为大约7(之前为10)。

我的UITableView后面有一个视图需要与UITableViewCell具有相同的角半径。 我的应用程序也是以前的iOS版本,因此我必须将视图的角半径调整为当前UITableview所具有的角度半径。 有没有办法访问单元格的角半径?

1 个答案:

答案 0 :(得分:1)

@bllubbor - 你可以通过这种方法,希望它解决了你的答案,因为它对我有用..

@interface BackgroundView : UIView
    @end

    @implementation BackgroundView

    + (Class)layerClass
    {
        return [CAShapeLayer class];
    }
    @end

稍后在cellForRowAtIndexPath中执行以下操作: -

    static NSString *CellIdentifier = @"CustomCell";
    CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];

    CGRect frame = cell.backgroundView.frame;
    cell.backgroundView = [[BackgroundView alloc] initWithFrame:frame];

    CGFloat corner = 20.0f;
    UIBezierPath *path = [UIBezierPath bezierPathWithRoundedRect:cell.backgroundView.bounds byRoundingCorners:UIRectCornerAllCorners cornerRadii:CGSizeMake(corner, corner)];
    CAShapeLayer  *shapeLayer = (CAShapeLayer *)cell.backgroundView.layer;
    shapeLayer.path = path.CGPath;
    shapeLayer.fillColor = cell.textLabel.backgroundColor.CGColor;
    shapeLayer.strokeColor = [UIColor lightGrayColor].CGColor;
    shapeLayer.lineWidth = 1.0f;

    return cell;